SyntaxORDER BY { | ColumnPosition | Expression }
[ ASC | DESC ]
[ , 列名 | 列位置 | 式
[ ASC | DESC ] ] *
- 列名
- 問い合わせのの選択項目にて、可視である名前を参照します。
ORDER BYで指定する列名はSELECTされる項目になくとも構いません。
- 列位置
- の選択項目の、列の番号を指定する整数です。
列位置は、0より大きくかつ結果表の列数以下でなければなりません。言い換えれば、列で並び変えるために、その列がSELECTされる項目にある必要があります。
- 式
- 並び変えを行うキーの式で、数値や文字列、日付などの式とすることができます。
式はスカラー副問い合わせやCASE式などの、行の値における式とすることができます。
- ASC
- 結果を昇順で返すことを指定します。方向が指定されない場合、ASCが既定です。
- DESC
- 結果を降順で返すことを指定します。
但し書き
- SELECT DISTINCTが指定されたり、SELECT文にGROUP BY節があった場合、ORDER BYする列はSELECTされる項目になければなりません。
- ORDER BY節があると、SELECT文を更新可能カーソルとすることができません。より詳細な情報は、を参照してください。
例えば、もしINTEGERの列に整数があると、ソートのときNULLは1より大きいと見なされます。言い換えれば、NULLの値は、より上の位置にソートされます。
相関名を使う例
相関名が選択項目にて指定されていれば、結果セットを相関名で並び変えできます。
たとえばCITIESデータベースから、COUNTRY列にNATIONという相関名を与えて、CITY_NAME列とCOUNTRY列に格納されているすべての情報を返す場合、次のようなSELECT文を書きます。
SELECT CITY_NAME, COUNTRY AS NATION
FROM CITIES
ORDER BY NATION
数式を使う例
結果セットを数式で並び変えることができます。例を挙げます。SELECT name, salary, bonus FROM employee
ORDER BY salary+bonusこの例では、salaryとbonus列はDECIMALデータ型です。
関数を使う例結果セットを関数の呼び出し結果を元に並び変えることができます。例を挙げます。SELECT i, len FROM measures
ORDER BY sin(i)