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