OFFSET と FETCH を使用すると、データを一定量ずつ取得できます。これらは、1 回のクエリで取得する行のブロックを指定します。
offset_row_count または fetch_row_count の値には、数値またはリテラル定数を指定できます。fetch_row_count は省略可能で、デフォルト値は 1 です。
OFFSET は、クエリの結果セットから行の返却を開始する前にスキップする行数を指定します。OFFSET n は、結果の先頭 n 行をスキップします。
負の OFFSET もサポートされています。OFFSET -n は、結果の末尾 n 行をスキップします。
小数の OFFSET もサポートされています。OFFSET n で 0 < n < 1 の場合、結果の先頭 n * 100% がスキップされます。
例:
• OFFSET 0.1 - 結果の先頭 10% をスキップします。
注記 • 小数は、1 未満かつ 0 より大きい Float64 型の数値である必要があります。 • 計算の結果、行数が小数になる場合は、次の整数に切り上げられます。
FETCH は、クエリの結果に含めることができる行の最大数を指定します。
ONLY オプションは、OFFSET で省略された行の直後の行を返すために使用されます。この場合、FETCH は LIMIT 句の代替となります。たとえば、次のクエリ
WITH TIES オプションは、ORDER BY 句に基づいて、結果セットの末尾と同順位になる追加の行も返すために使用されます。たとえば、fetch_row_count が 5 に設定されていて、さらに 2 行が 5 行目の ORDER BY カラムの値と一致する場合、結果セットには 7 行が含まれます。
標準では、
OFFSET 句と FETCH 句の両方がある場合、OFFSET 句は FETCH 句の前になければなりません。実際のオフセットは、offset 設定によっても変わる場合があります。
例
ONLY オプションの使用:
Query
Response
WITH TIES オプションの使用例:
Query
Response