OFFSET- en FETCH-clausules worden gebruikt in combinatie met SELECT- en ORDER BY-clausules om een reeks records op te halen.
OFFSET
Het OFFSET-argument wordt gebruikt om het startpunt te bepalen voor het retourneren van rijen uit een resultaatverzameling. In principe sluit het de eerste reeks records uit.
Note:
- OFFSET kan alleen worden gebruikt met ORDER BY-clausule. Het kan niet op zichzelf worden gebruikt.
- OFFSET waarde moet groter zijn dan of gelijk aan nul. Het kan niet negatief zijn, anders retourneert u een fout.
Syntax:
SELECT column_name(s)FROM table_nameWHERE conditionORDER BY column_nameOFFSET rows_to_skip ROWS;
Voorbeelden:
Zie de volgende Werknemerstabel,
- Print Fname, Lname van alle Werknemers behalve de werknemer met het laagste salaris.
SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 1 ROWS;
Uitvoer:
FETCH
Het FETCH-argument wordt gebruikt om een reeks van aantal rijen terug te sturen. FETCH kan niet op zichzelf worden gebruikt, maar in combinatie met OFFSET.
Syntaxis:
SELECT column_name(s)FROM table_nameORDER BY column_nameOFFSET rows_to_skipFETCH NEXT number_of_rows ROWS ONLY;
Voorbeeld:
- Print de F-naam, L-naam van 3e tot 6e tupel van de tabel Werknemer wanneer deze zijn gesorteerd op het Salaris.
SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET 2 ROWSFETCH NEXT 4 ROWS ONLY;
Uitvoer:
- Print de onderste 2 tupels van de tabel Werknemer wanneer deze zijn gesorteerd op het Salaris.
SELECT Fname, LnameFROM EmployeeORDER BY SalaryOFFSET (SELECT COUNT(*) FROM EMPLOYEE) - 2 ROWSFETCH NEXT 2 ROWS;
Uitvoer:
Belangrijke punten:
- OFFSET-clausule is verplicht bij FETCH. U kunt nooit ORDER BY … FETCH gebruiken.
- TOP kan niet worden gecombineerd met OFFSET en FETCH.
- De OFFSET/FETCH rijtelling expressie kan alleen een rekenkundige, constante, of parameter expressie zijn die een gehele waarde teruggeeft.
- ORDER BY is verplicht om te worden gebruikt met OFFSET en FETCH clausule.
- OFFSET waarde moet groter dan of gelijk aan nul zijn. Het kan niet negatief zijn, anders retourneer error.
Dit artikel is bijgedragen door Anuj Chauhan. Als je GeeksforGeeks leuk vindt en een bijdrage wilt leveren, kun je ook een artikel schrijven via contribute.geeksforgeeks.org of mail je artikel naar [email protected]. Zie je artikel verschijnen op de GeeksforGeeks hoofdpagina en help andere Geeks.