OFFSET および FETCH 句は、SELECT および ORDER BY 句と組み合わせて、レコードの範囲を取得する手段を提供するために使用します。 基本的に、それはレコードの最初のセットを除外します。
注意:
- OFFSET は ORDER BY 句と一緒にのみ使用できます。 それ自体では使用できません。
- OFFSET 値は 0 以上でなければなりません。
構文:
SELECT column_name(s)FROM table_nameWHERE conditionORDER BY column_nameOFFSET rows_to_skip ROWS;
例:
次の社員テーブルを考えます。
- 最も低い給与の社員を除くすべての社員のFname、Lnameを表示します。
SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 1 ROWS;
出力:
FETCH
FETCH引数は、行数のセットを返すために使用されます。 FETCHは単独では使用できず、OFFSETと組み合わせて使用します。
構文:
SELECT column_name(s)FROM table_nameORDER BY column_nameOFFSET rows_to_skipFETCH NEXT number_of_rows ROWS ONLY;
例:
- 給与順に並べたEmployeeテーブルの第3から第6タプルまでのFname、Lnameを表示します。
SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 2 ROWSFETCH NEXT 4 ROWS ONLY;
出力:
- Employeeテーブルの下位2タプルをSalary順にソートして印刷します。
SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET (SELECT COUNT(*) FROM EMPLOYEE) - 2 ROWSFETCH NEXT 2 ROWS;
出力:
重要なポイント:
- FETCHではOFFSET句は必須です。 ORDER BY … FETCHは使用できません。
- TOP は OFFSET および FETCH と組み合わせることはできません。
- OFFSET/FETCH 行カウント式には、整数値を返す算術、定数またはパラメータ式のみを使用できます。
- ORDER BY は OFFSET および FETCH 句と共に使用することが義務付けられています。 負の値は使用できません。さもなければ、エラーを返します。
この記事は Anuj Chauhan によって寄稿されました。 GeeksforGeeks が好きで貢献したい場合は、contribute.geeksforgeeks.org を使って記事を書いたり、[email protected] に記事を郵送することもできます。 あなたの記事が GeeksforGeeks のメインページに表示され、他の Geeks を助けることができます。