OFFSET 句と FETCH FIRST 句
OFFSET
句と FETCH FIRST
句は、結果セットの特定の開始ポイントから始まる行の指定範囲を返すために使用します。大きな結果セットから取得する行の範囲を制限できるので、データを「ページ」で区切って効率を向上させることができます。
OFFSET
句は、データを返す前にスキップする行の数を示します。OFFSET
句を SELECT
ステートメントで使用しない場合、開始行は 0 になります。FETCH FIRST
句は、OFFSET
句で指定した開始ポイントから開始する返す行の数を 1 以上の符号なしの整数またはパーセンテージとして指定します。OFFSET
句と FETCH FIRST
句は両方とも SELECT
ステートメントで使用します。OFFSET
句を先に指定します。
OFFSET
句と FETCH FIRST
句は、サブクエリーでサポートされていません。
OFFSET 句の形式
OFFSET
の形式は次のとおりです:
[ OFFSET n {ROWS | ROW} ]
n
は符号なしの整数です。結果セットで返される行数よりも n
が大きい場合、何の結果も返されず、エラーメッセージも表示されません。
ROWS
は ROW
と同じです。
FETCH FIRST 句の形式
FETCH FIRST
の形式は次のとおりです:
FETCH FIRST [ n [ PERCENT ] ] { ROWS | ROW } {ONLY | WITH TIES } ]
n
は返される行の数です。n
を省略した場合のデフォルト値は 1 です。
PERCENT
が後に続く場合を除き、n
は 1 以上の符号なし整数です。n
の後に PERCENT
が続く場合、値は正の小数値または符号なしの整数のいずれかです。
ROWS
は ROW
と同じです。
WITH TIES
は、ORDER BY
句と共に使用する必要があります。
WITH TIES
を使用すると、ピア行 (ORDER BY
句に基づいて区別されない行) も返されるので、FETCH
カウント値で指定された数よりも多くの行を返すことができます。
姓
、名
の順でソートされた結果セットの 26 行目から情報を返します。
SELECT "従業員番号" , "姓" , "名" FROM "従業員名簿" ORDER BY "姓" , "名" OFFSET 25 ROWS
10 行のみを返すように指定します。
SELECT "従業員番号" , "姓" , "名" FROM "従業員名簿" ORDER BY "姓" , "名" OFFSET 25 ROWS FETCH FIRST 10 ROWS ONLY
10 行とそのピア行 (ORDER BY
句に基づいて区別されない行) を返します。
SELECT "従業員番号" , "姓" , "名" FROM "従業員名簿" ORDER BY "姓" , "名" OFFSET 25 ROWS FETCH FIRST 10 ROWS WITH TIES