Klauzule OFFSET a FETCH se používají ve spojení s klauzulemi SELECT a ORDER BY jako prostředek pro získání rozsahu záznamů.

OFFSET

Argument OFFSET slouží k určení počátečního bodu pro vrácení řádků ze sady výsledků. V podstatě vylučuje první sadu záznamů.
Poznámka:

  • OFFSET lze použít pouze s klauzulí ORDER BY. Nelze ji použít samostatně.
  • Hodnota OFFSET musí být větší nebo rovna nule. Nesmí být záporná, jinak vrátí chybu.

Syntaxe:

SELECT column_name(s)FROM table_nameWHERE conditionORDER BY column_nameOFFSET rows_to_skip ROWS;

Příklad:
Považujte následující tabulku Zaměstnanci,

  • Vypište Fname, Lname všech zaměstnanců kromě zaměstnance s nejnižším platem.
    SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 1 ROWS;

    Výstup:

FETCH

Argument FETCH slouží k vrácení množiny určitého počtu řádků. FETCH nelze použít samostatně, používá se ve spojení s OFFSET.
Syntaxe:

SELECT column_name(s)FROM table_nameORDER BY column_nameOFFSET rows_to_skipFETCH NEXT number_of_rows ROWS ONLY;

Příklad:

  • Vypište Fjméno, Ljméno od 3. do 6. tuple tabulky Zaměstnanci při seřazení podle Mzdy.
    SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 2 ROWSFETCH NEXT 4 ROWS ONLY;

    Výstup:

  • Vypište dolní 2 tuply tabulky Zaměstnanec při seřazení podle Platu.
    SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET (SELECT COUNT(*) FROM EMPLOYEE) - 2 ROWSFETCH NEXT 2 ROWS;

    Výstup:

Důležité body:

  1. Klauzule OFFSET je u FETCH povinná. Nikdy nelze použít, ORDER BY … FETCH.
  2. TOP nelze kombinovat s OFFSET a FETCH.
  3. Výraz OFFSET/FETCH pro počet řádků může být pouze jakýkoli aritmetický, konstantní nebo parametrický výraz, který vrátí celočíselnou hodnotu.
  4. ORDER BY je povinné použít s klauzulí OFFSET a FETCH.
  5. Hodnota OFFSET musí být větší nebo rovna nule. Nesmí být záporná, jinak vrátí chybu.

Tento článek napsal Anuj Chauhan. Pokud se vám GeeksforGeeks líbí a chtěli byste přispět, můžete také napsat článek pomocí stránky contribute.geeksforgeeks.org nebo poslat svůj článek na adresu [email protected]. Uvidíte, jak se váš článek objeví na hlavní stránce GeeksforGeeks, a pomůžete tak ostatním geekům.

admin

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

lg