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;

    出力:

重要なポイント:

  1. FETCHではOFFSET句は必須です。 ORDER BY … FETCHは使用できません。
  2. TOP は OFFSET および FETCH と組み合わせることはできません。
  3. OFFSET/FETCH 行カウント式には、整数値を返す算術、定数またはパラメータ式のみを使用できます。
  4. ORDER BY は OFFSET および FETCH 句と共に使用することが義務付けられています。 負の値は使用できません。さもなければ、エラーを返します。

この記事は Anuj Chauhan によって寄稿されました。 GeeksforGeeks が好きで貢献したい場合は、contribute.geeksforgeeks.org を使って記事を書いたり、[email protected] に記事を郵送することもできます。 あなたの記事が GeeksforGeeks のメインページに表示され、他の Geeks を助けることができます。

admin

コメントを残す

メールアドレスが公開されることはありません。

lg