OFFSET、FETCH、LIMIT¶
OFFSET 、 FETCH 、および LIMIT の各句は、クエリの実行で得られる行の数を制限します。
OFFSET <number> [ ROW | ROWS ] を使用すると、結果セットの先頭にある n 行が省略されます。
LIMIT [ <count> ] または FETCH { FIRST | NEXT } [ <count> ] { ROW | ROWS } ONLY を使用すると、結果セットの <count> 行のみが取得されます。
パラメータ ROW および ROWS は同じ意味を持ち、厳密に区別せずに使用できます。 FIRST および NEXT も同様です。
一貫性のある結果を得るには、クエリで並べ替え順序が確定するようにしておく必要があります。
OFFSET を LIMIT または FETCH と組み合わせて使用できます (「 SELECT ステートメントの構文 」でこれらの句の構文を参照してください)。
例
例 1
SELECT f1, f2
FROM employee
FETCH FIRST 10 ROWS ONLY
クエリを実行し、結果セットの先頭にある 10 行を返します。
例 2
SELECT f1, f2
FROM employee
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY
クエリを実行し、行番号 10 から 19 までを返します。最初の行は行番号 0 です。
以下のクエリでは LIMIT を使用して、前のクエリと同様の結果が得られるようにしています。
SELECT f1, f2
FROM employee
OFFSET 10 ROWS
LIMIT 10
例 3
<count> を指定せずに FETCH を使用すると、1 行のみが返されます。
たとえば、以下のクエリでは結果セットの先頭行のみが返されます。
SELECT f1, f2
FROM employee
FETCH NEXT ROW ONLY
