K tomu můžete použít poddotaz jako
select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
Další informace najdete také v tématu On ROWNUM a omezování výsledků na Oracle/AskTom.
Aktualizovat :Chcete-li omezit výsledek pomocí spodních i horních hranic, jsou věci trochu nafouknutější
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;
(Zkopírováno ze zadaného AskTom-article)
Aktualizace 2 :Počínaje Oracle 12c (12.1) je k dispozici syntaxe pro omezení řádků nebo začátek na offsetech.
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Další příklady naleznete v této odpovědi. Díky Krumii za tip.