Du kan använda en underfråga för detta som
select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
Ta också en titt på ämnet On ROWNUM och begränsande resultat på Oracle/AskTom för mer information.
Uppdatera :För att begränsa resultatet med både nedre och övre gränser blir det lite mer uppsvällt med
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;
(Kopierat från specificerad AskTom-artikel)
Uppdatering 2 :Från och med Oracle 12c (12.1) finns en syntax tillgänglig för att begränsa rader eller börja med offset.
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Se detta svar för fler exempel. Tack till Krumia för tipset.