FETCH (SQL 節)
クエリが返す行の数を制限します。
構文
SELECT ... FROM ... [ ORDER BY ... ]
[ OFFSET start [ ROW | ROWS ] ]
FETCH [ FIRST | NEXT ] count [ ROW | ROWS ] [ ONLY ]
説明
FETCH 節は、SELECT クエリ全体の結果セットから返す行の最大数を決定します。OFFSET を指定すると、結果セットの先頭から特定数の項目を返すのをスキップすることができます。
現在、サブクエリでは、ORDER BY 節の後に FETCH 節を使用することはできません。サブクエリで ORDER BY を使用するには、代わりに TOP を使用します。
InterSystems SQL では、クエリ結果を制限する 3 つのスタイルTOP、LIMIT、FETCH をサポートしています。これらのスタイルは完全に異なるため、クエリ内で混在させることはできません。クエリで複数のスタイルを同時に使用しようとすると、SQLCODE -386 エラーが生じます。
オプションのキーワード ROW、ROWS、FIRST、NEXT、ONLY はすべて糖衣構文であり、実行には影響しません。
引数
start
結果セットの先頭でスキップする行数を表す正の整数。
OFFSET 節はオプションです。start にゼロに指定すると、OFFSET 節全体を省略した場合と同じ動作になります。
ROW または ROWS オプションは糖衣構文であり、実行には影響しません。
count
クエリが返す行数を制御する正の整数。負の整数はゼロとして処理されます。
制限を課す前に count が選択された行数を超えた場合は、結果セット全体が返されます。
例
以下の例では、Sample.Person から取得した最初の 20 個の Home_State 値を昇順の照合順で選択します。
SELECT Home_State FROM Sample.Person ORDER BY Home_State FETCH 20
以下の例では、Sample.Person テーブルから昇順の照合順で取得した Home_State 値の最初の 5 行を省略し、次の 20 個の値を選択します。
SELECT Home_State FROM Sample.Person ORDER BY Home_State OFFSET 5 FETCH FIRST 20