De elementen OFFSET en FETCH FIRST
De elementen OFFSET
en FETCH FIRST
worden gebruikt om een specifiek bereik van rijen te verkrijgen dat begint vanaf een bepaald startpunt in een reeks resultaten. Door de mogelijkheid om het ophalen van rijen uit een grote reeks resultaten te beperken, kunt u 'bladeren per pagina' door de gegevens en verbetert u de efficiëntie.
Het element OFFSET
geeft het aantal rijen aan die moeten worden overgeslagen voordat gegevens moeten worden geretourneerd. Als het element OFFSET
niet wordt gebruikt in een SELECT
-instructie, is de eerste rij 0. Het element FETCH FIRST
geeft het aantal rijen op die moeten worden geretourneerd, hetzij als een geheel getal zonder teken groter dan of gelijk aan 1 hetzij als een percentage, vanaf het startpunt aangegeven in het element OFFSET
. Als zowel OFFSET
als FETCH FIRST
worden gebruikt in een SELECT
-instructie, moet eerst het element OFFSET
worden gebruikt.
De elementen OFFSET
en FETCH FIRST
worden niet ondersteund in subopvragen.
OFFSET-elementsyntaxis
De OFFSET
-syntaxis is:
OFFSET [ n {ROWS | ROW} ]
n
is een geheel getal zonder teken. Als n
groter is dan het aantal rijen dat wordt geretourneerd in de reeks resultaten, wordt niets geretourneerd en verschijnt geen foutbericht.
ROWS
is het hetzelfde als ROW
.
FETCH FIRST-elementsyntaxis
De FETCH FIRST
-syntaxis is:
FETCH FIRST [ n [ PERCENT ] ] { ROWS | ROW } {ONLY | WITH TIES } ]
n
is het aantal rijen dat moet worden geretourneerd. De standaardwaarde is 1 als n
wordt weggelaten.
n
is een geheel getal zonder teken dat groter dan of gelijk aan 1 is tenzij het wordt gevolgd door PERCENT
. Als n
wordt gevolgd door PERCENT
, kan de waarde een positieve fractionele waarde of een geheel getal zonder teken.
ROWS
is het hetzelfde als ROW
.
WITH TIES
moet worden gebruikt met het element ORDER BY
.
Via WITH TIES
kunnen meer rijen worden geretourneerd dan opgegeven in de FETCH-
waarde omdat peerrijen (rijen die niet verschillen op basis van het element ORDER BY
) ook worden geretourneerd.
Geef als resultaat informatie van de zesentwintigste rij van de reeks resultaten die zijn gesorteerd op achternaam
en dan op voornaam
.
SELECT werkn_ID, achternaam, voornaam FROM werkn ORDER BY achternaam, voornaam OFFSET 25 ROWS
Geef op dat u slechts tien rijen als resultaat wilt.
SELECT werkn_ID, achternaam, voornaam FROM werkn ORDER BY achternaam, voornaam OFFSET 25 ROWS FETCH FIRST 10 ROWS ONLY
Geef als resultaat de tien rijen en hun peerrijen (rijen die niet verschillen op basis van het element ORDER BY
):
SELECT werkn_ID, achternaam, voornaam FROM werkn ORDER BY achternaam, voornaam OFFSET 25 ROWS FETCH FIRST 10 ROWS WITH TIES