U kunt hiervoor een subquery gebruiken, zoals
select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
Bekijk ook het onderwerp On ROWNUM en het beperken van resultaten bij Oracle/AskTom voor meer informatie.
Bijwerken :Om het resultaat met zowel onder- als bovengrenzen te beperken, wordt het een beetje opgeblazen met
select * from
( select a.*, ROWNUM rnum from
( <your_query_goes_here, with order by> ) a
where ROWNUM <= :MAX_ROW_TO_FETCH )
where rnum >= :MIN_ROW_TO_FETCH;
(Gekopieerd uit gespecificeerd AskTom-artikel)
Update 2 :Vanaf Oracle 12c (12.1) is er een syntaxis beschikbaar om rijen te beperken of te beginnen bij offsets.
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Zie dit antwoord voor meer voorbeelden. Met dank aan Krumia voor de hint.