Før 12.1 understøtter Oracle ikke LIMIT
eller OFFSET
søgeord. Hvis du vil hente rækkerne N til M i et resultatsæt, har du brug for noget som:
VÆLG a.* FRA (VÆLG b.*, rækkenummer b_rækkenummer FRA (VÆLG c.* FRA en_tabel c BESTIL EFTER some_column) b HVOR rækkenummer <=<<øvre grænse>>) a HVOR b_rækkenummer>=<>
eller ved at bruge analytiske funktioner:
SELECT a.* FROM (SELECT b.*, rank() over (rækkefølge efter some_column) rnk FROM some_table) HVOR rnk MELLEM <> OG <<øvre grænse>> ORDER BY some_column
Hver af disse tilgange vil sortere give dig rækkerne N til M af det sorterede resultat.
I 12.1 og nyere kan du bruge OFFSET
og/eller FETCH [FØRST | NÆSTE]
operatører:
VÆLG * FRA some_table BESTIL EFTER some_column OFFSET <> RÆKKER HENT NÆSTE <> KUN RÆKKER