Hitachi

Hitachi Advanced Data Binder SQLリファレンス


7.25.1 ソート指定リストの指定形式

ソート指定リストでデータのソート順を指定します。

〈この項の構成〉

(1) 指定形式

ソート指定リスト::=ソート指定〔,ソート指定〕…
 
 
  ソート指定::=ソートキー順序付け指定〕 〔ナル値ソート順指定ソートキー::={値式ソート項目指定番号順序付け指定::={ASC|DESC}
    ナル値ソート順指定::=NULLS {FIRST|LAST}

(2) 指定形式の説明

ソート指定
ソート指定::=ソートキー順序付け指定〕 〔ナル値ソート順指定

ソート指定には,ソートキー ,順序付け指定,およびナル値ソート順指定を指定します。

指定規則を次に示します。

  • ORDER BY句またはウィンドウ順序句に指定したソート指定リストには,ソート指定を最大64個指定できます。

  • WITHINグループ指定またはARRAY_AGG集合関数に指定したソート指定リストには,ソート指定を1つだけ指定できます(2つ以上指定できません)。

ソートキー
ソートキー::={値式ソート項目指定番号

ソートキーを値式またはソート項目指定番号のどちらかの形式で指定します。

重要
  • ソート項目指定番号は,ORDER BY句のソートキーにだけ指定できます。

  • ートキーに整数定数を指定した場合は,ソート項目指定番号と見なされます。整数定数以外の定数を指定した場合は,値式と見なされます。

値式

ソートキーを値式の形式で指定します。値式については,「7.21 値式」を参照してください。

なお,複数のソートキーを指定した場合,最初に指定したソートキーが,並び替えの優先順位がいちばん高くなります。例えば,ORDER BY "C1","C2","C3"と指定した場合,ソートキーの優先順位はC1C2C3の順になります。

また,値式には配列データを指定できません。

ソート項目指定番号

ソートキーとする列の番号を指定します。例えば,2を指定した場合,問合せ式本体によって導出される表の2番目の列が,ソートキーになります。

(例)

SELECT "C1","C2" FROM "T1"
    ORDER BY 2 ASC

上記のSELECT文を実行した場合,C2列がソートキーになります。

指定規則を次に示します。

  • ソート項目指定番号には整数定数を指定します。

  • ソート項目指定番号の指定範囲は,「1〜問合せ式本体によって導出される表の列数」となります。

    (例)

    SELECT "C1",SUM("C2"),AVG("C2") FROM "T1"
        GROUP BY "C1" ORDER BY 3 ASC

    上記のSELECT文を実行する場合,ORDER BY句に指定できるソート項目指定番号は13になります。

  • 2つ以上のソート項目指定番号を指定した場合,最初に指定したソート項目指定番号が,並び替えの優先順位がいちばん高くなります。例えば,ORDER BY 2,3,1と指定した場合,優先順位はソート項目指定番号2の列,ソート項目指定番号3の列,ソート項目指定番号1の列の順になります。

  • 表指定.]ROWに対応するソート項目指定番号は指定できません。

    (例)エラーになるSQL文の例

    SELECT "C1",ROW FROM "T1" ORDER BY 2
重要

次の個所に指定したソート指定リストのソートキーに整数定数を指定した場合,ソート項目指定番号ではなく値式と見なされます。

  • WITHINグループ指定

  • ウィンドウ順序句

  • ARRAY_AGG集合関数

順序付け指定
順序付け指定::={ASC|DESC}

ソート結果を昇順に並べるか,または降順に並べるかを指定します。次のどちらかを指定します。

ASC:ソート結果を昇順に並べる場合に指定します。

DESCソート結果を降順に並べる場合に指定します。

順序付け指定を省略した場合は,ASCが仮定されます。

ナル値ソート順指定
ナル値ソート順指定::=NULLS {FIRST|LAST}

ソート実行時のナル値の並びを指定します。次のどちらかを指定します。

NULLS FIRSTナル値を先頭に並べます。

NULLS LASTナル値を末尾に並べます。

ナル値ソート順指定を省略した場合,ナル値の並びは,サーバ定義またはクライアント定義のadb_sql_prep_null_collationオペランドの指定値と順序付け指定の指定値の組み合わせによって決まります。adb_sql_prep_null_collationオペランドについては,マニュアルHADB システム構築・運用ガイドサーバ定義の設計サーバ定義のオペランドの内容SQL文に関するオペランド(set形式)を参照してください。

ナル値ソート順指定を省略した場合のナル値の並びを,次の表に示します。

表7‒39 ナル値ソート順指定を省略した場合のナル値の並び

adb_sql_prep_null_collationオペランドの指定値

順序付け指定の指定値

ナル値の並び

HIGHまたは省略時

ASCまたは省略時

ナル値を末尾に並べます。NULLS LASTと同じです。

DESC

ナル値を先頭に並べます。NULLS FIRSTと同じです。

LOW

ASCまたは省略時

ナル値を先頭に並べます。NULLS FIRSTと同じです。

DESC

ナル値を末尾に並べます。NULLS LASTと同じです。

重要
  • ビュー表を検索する場合,ナル値ソート順指定を省略したときのナル値の並びは,ビュー表を検索したときのサーバ定義またはクライアント定義のadb_sql_prep_null_collationオペランドの指定値によって決まります。

  • WITHINグループ指定またはARRAY_AGG集合関数に指定したソート指定リストには,ナル値ソート順指定を指定できません。