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:
- Klauzule OFFSET je u FETCH povinná. Nikdy nelze použít, ORDER BY … FETCH.
- TOP nelze kombinovat s OFFSET a FETCH.
- 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.
- ORDER BY je povinné použít s klauzulí OFFSET a FETCH.
- 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.