OFFSET、FETCH、LIMIT

OFFSETFETCH 、および LIMIT の各句は、クエリの実行で得られる行の数を制限します。

OFFSET <number> [ ROW | ROWS ] を使用すると、結果セットの先頭にある n 行が省略されます。

LIMIT [ <count> ] または FETCH { FIRST | NEXT } [ <count> ] { ROW | ROWS } ONLY を使用すると、結果セットの <count> 行のみが取得されます。

パラメーター ROW および ROWS は同じ意味を持ち、厳密に区別せずに使用できます。 FIRST および NEXT も同様です。

一貫性のある結果を得るには、クエリで並べ替え順序が確定するようにしておく必要があります。

OFFSETLIMIT または 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