Sie können dafür eine Unterabfrage wie
verwendenselect *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
Sehen Sie sich auch das Thema On ROWNUM and limiting results bei Oracle/AskTom an, um weitere Informationen zu erhalten.
Aktualisieren :Um das Ergebnis sowohl mit Unter- als auch mit Obergrenzen zu begrenzen, wird es etwas aufgeblähter mit
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;
(Von angegebenem AskTom-Artikel kopiert)
Aktualisierung 2 :Ab Oracle 12c (12.1) ist eine Syntax verfügbar, um Zeilen zu begrenzen oder bei Offsets zu beginnen.
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Weitere Beispiele finden Sie in dieser Antwort. Danke an Krumia für den Hinweis.