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:

Kopiëren
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:

Kopiëren
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.

Voorbeelden

Geef als resultaat informatie van de zesentwintigste rij van de reeks resultaten die zijn gesorteerd op achternaam en dan op voornaam.

Kopiëren
SELECT werkn_ID, achternaam, voornaam FROM werkn ORDER BY achternaam, voornaam OFFSET 25 ROWS

Geef op dat u slechts tien rijen als resultaat wilt.

Kopiëren
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):

Kopiëren
SELECT werkn_ID, achternaam, voornaam FROM werkn ORDER BY achternaam, voornaam OFFSET 25 ROWS FETCH FIRST 10 ROWS WITH TIES