OFFSET- och FETCH FIRST-satser
OFFSET
- och FETCH FIRST
-satser används för att returnera ett angivet intervall av rader som börjar vid en särskild startpunkt i en resultatuppsättning. Möjligheten att begränsa de rader som hämtas från stora resultatuppsättningar gör att du kan "bläddra sida" genom data och förbättrar effektiviteten.
OFFSET
-satsen indikerar antalet rader som ska hoppas över innan data börjar att returneras. Om OFFSET
-satsen inte används i ett SELECT
-sats är startraden 0. FETCH FIRST
-satsen anger antalet rader som ska returneras, antingen som ett positivt heltal som är större än eller lika med 1 eller som en procentsats från den startpunkt som indikeras i OFFSET
-satsen. Om både OFFSET
och FETCH FIRST
används i en SELECT
-sats ska OFFSET
-satsen komma först.
OFFSET
- och FETCH FIRST
-satser stöds inte i underfrågor.
OFFSET-format
OFFSET
-formatet är:
OFFSET [ n {ROWS | ROW} ]
n
är ett positivt heltal. Om n
är större än antalet rader som returneras i resultatuppsättningen returneras ingenting och inget felmeddelande visas.
ROWS
är detsamma som ROW.
FETCH FIRST-format
FETCH FIRST
-formatet är:
FETCH FIRST [ n [ PERCENT ] ] { ROWS | ROW } {ONLY | WITH TIES } ]
n
är antalet rader som ska returneras. Standardvärdet är 1 om n
utesluts.
n
är ett positivt heltal som är större än eller lika med 1 om det inte följs av PERCENT
. Om n
följs av PERCENT
, kan värdet vara antingen ett positivt bråkdelsvärde eller ett positivt heltal.
ROWS
är detsamma som ROW.
WITH TIES
måste användas med ORDER BY
-satsen.
WITH TIES
gör att fler rader kan returneras än det värde som anges i FETCH
eftersom peer-rader, de rader som inte är separata utifrån ORDER BY
-satsen, också returneras.
Returnera information från den tjugosjätte raden i resultatuppsättningen som sorterats efter efternamn
och sedan efter förnamn
.
SELECT anst_id, efternamn, förnamn FROM anst ORDER BY efternamn, förnamn OFFSET 25 ROWS
Ange att du bara vill returnera tio rader.
SELECT anst_id, efternamn, förnamn FROM anst ORDER BY efternamn, förnamn OFFSET 25 ROWS FETCH FIRST 10 ROWS ONLY
Returnera tio rader och deras peer-rader (rader som inte är separata utifrån ORDER BY
-satsen):
SELECT anst_id, efternamn, förnamn FROM anst ORDER BY efternamn, förnamn OFFSET 25 ROWS FETCH FIRST 10 ROWS WITH TIES