ORDER BY 句 (SQL Server Compact)
結果セットの並べ替え順を指定します。ORDER BY 句は、サブクエリでは無効です。OFFSET-FETCH 句を使用して、結果セットから結果のウィンドウまたはページだけをフェッチするオプションもあります。
構文
[ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n][<offset_fetch>] ]
<offset_fetch> ::= {OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS } [FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY ]}
引数
order_by_expression
並べ替えのキーとなる列を指定します。並べ替えのキーとなる列は、名前または列の別名 (テーブル名によって修飾可能)、または式として指定できます。キーとなる列は複数指定できます。ORDER BY 句内に記述するキー列の並び順によって、並べ替えられた結果セットの構成が決まります。ORDER BY 句には、選択リストに指定されていない項目を指定できます。
注意
ORDER BY 句では、ntext 型および image 型の列を使用できません。
ASC
指定した列の値を昇順、つまり小さい値から大きい値へと並べ替えるように指定します。DESC
指定した列の値が降順、つまり大きい値から小さい値へと並べ替えられます。NULL 値は最小値として扱われます。OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
クエリ式から行を返し始める前にスキップする行数を指定します。OFFSET 句の引数は、0 以上の整数または式にすることができます。ROW と ROWS は、同じ意味で使用できます。FETCH {FIRST|NEXT} <rowcount expression> {ROW|ROWS} ONLY
OFFSET 句の処理後に返す行数を指定します。FETCH 句の引数は、0 以上の整数または式にすることができます。ROW と ROWS は、同じ意味で使用できます。同様に、FIRST と NEXT も同じ意味で使用できます。
説明
ORDER BY 句の中の項目数に制限はありません。
ORDER BY 句を UNION ステートメント内で使用する場合、並べ替えのキーとなる列は、最初の SELECT ステートメントで指定された列名またはその別名でなければなりません。たとえば、次に示す 1 番目の SELECT ステートメントは成功しますが、2 番目のステートメントは失敗します。
col1 は 1 番目のテーブル (t1) に属すので、このステートメントは成功します。
Create t1 (col1 int, col2 int);
Create t2 (col3 int, col4 int);
SELECT * from t1 UNION SELECT * from t2 ORDER BY col1;
col3 は 1 番目のテーブル (t1) に属さないので、このステートメントは失敗します。
SELECT * from t1 UNION SELECT * from t2 ORDER BY col3;
使用例
次の例では、従業員の一覧を従業員の名前順に並べ替えています。
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name
次の例は、OFFSET-FETCH 句と ORDER BY の使用方法を示しています。ここでは、並べ替えられた結果セットの最初の 10 行はスキップされ、残りの行が返されます。
SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;