Hanya ada cara yang agak berbelit-belit untuk melakukan ini, yang sangat merepotkan Oracle. Mereka hanya harus menerapkan klausa LIMIT/OFFSET...
Rownum ditugaskan setelah baris telah dipilih oleh klausa where, sehingga rownum harus selalu dimulai dengan 1. where rownum > x
akan selalu bernilai false.
Juga, rownum ditugaskan sebelum penyortiran selesai , sehingga rownum tidak akan berada dalam urutan yang sama dengan pesanan Anda.
Anda dapat mengatasi kedua masalah dengan subpilihan:
select a,b,c, rn from
( select a,b,c, rownum rn from
( select a,b,c from the_table where x = ? order by c)
where rownum < Y)
where rn > X
Jika Anda tidak perlu mengurutkan (tetapi hanya kemudian), Anda dapat menyederhanakannya menjadi
select a,b,c, rn from
( select a,b,c, rownum rn from the_table where rownum < Y )
where rn > X