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;

関連項目

参照

OFFSET FETCH 句 (SQL Server Compact)