W tym celu możesz użyć podzapytania, takiego jak
select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
Więcej informacji można znaleźć w temacie dotyczącym ROWNUM i ograniczania wyników w Oracle/AskTom.
Aktualizacja :Aby ograniczyć wynik z dolnymi i górnymi granicami, rzeczy stają się nieco bardziej rozdęte
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;
(Skopiowane z określonego artykułu AskTom)
Aktualizacja 2 :Począwszy od Oracle 12c (12.1) dostępna jest składnia pozwalająca ograniczyć wiersze lub zacząć od przesunięć.
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Zobacz tę odpowiedź, aby uzyskać więcej przykładów. Dzięki Krumii za podpowiedź.