Hitachi

Hitachi Advanced Data Binder SQLリファレンス


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

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

〈この項の構成〉

(1) 指定形式

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

(2) 指定形式の説明

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

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

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

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

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

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

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

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

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

値式

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

なお,複数のソートキーを指定した場合,最初に指定したソートキーが,並び替えの優先順位がいちばん高くなります。例えば,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ナル値を末尾に並べます。

ナル値ソート順指定を省略した場合は,ナル値の並びは次のようになります。

  • 順序付け指定にASCを指定した場合,または順序付け指定を省略した場合は,ナル値を末尾に並べます。NULLS LASTと同じです。

  • 順序付け指定にDESCを指定した場合は,ナル値を先頭に並べます。NULLS FIRSTと同じです。

重要

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