OFFSET FETCH 句 (SQL Server Compact)

OFFSET-FETCH 句は、結果セットから結果のウィンドウまたはページだけをフェッチするオプションです。OFFSET-FETCH は ORDER BY 句との組み合わせでのみ使用できます。

構文

[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]}

引数

  • 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 も同じ意味で使用できます。

OFFSET-FETCH の使用の制限

  • ORDER BY は、OFFSET および FETCH 句を使用するために必須です。

  • OFFSET 句は、FETCH 句に必須です。ORDER BY ... FETCH は使用できません。

  • TOP は OFFSET および FETCH と同じクエリ式内で結合することはできません。

  • OFFSET/FETCH の rowcount expression は、整数値を返す任意の算術式、定数式、またはパラメーター式にすることができます。rowcount expression は、スカラー サブクエリをサポートしていません。

使用例

次の例は、OFFSET-FETCH 句と ORDER BY の使用方法を示しています。

例 1 並べ替えられた結果セットの最初の 10 行はスキップされ、残りの行が返されます。

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS;

例 2 並べ替えられた結果セットの最初の 10 行はスキップされ、続く 5 行が返されます。

SELECT First Name + ' ' + Last Name FROM Employees ORDER BY First Name OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;