Anda dapat menggunakan subquery untuk ini seperti
select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
Lihat juga topik Tentang ROWNUM dan pembatasan hasil di Oracle/AskTom untuk informasi lebih lanjut.
Perbarui :Untuk membatasi hasil dengan batas bawah dan atas, semuanya menjadi sedikit lebih membengkak dengan
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;
(Disalin dari artikel AskTom tertentu)
Perbarui 2 :Mulai dengan Oracle 12c (12.1) ada sintaks yang tersedia untuk membatasi baris atau mulai dari offset.
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Lihat jawaban ini untuk lebih banyak contoh. Terima kasih kepada Krumia atas petunjuknya.