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;