Има само един доста сложен начин да направите това, което е истинска болка с Oracle. Те трябва просто да приложат клауза LIMIT/OFFSET...
Номерът на реда се присвоява след редът е избран от клаузата where, така че rownum трябва винаги да започва с 1. where rownum > x
винаги ще се оценява като false.
Освен това rownum се присвоява преди да се извърши сортирането , така че rownum няма да бъде в същия ред, както казва вашата поръчка от.
Можете да заобиколите и двата проблема с подизбор:
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
Ако не е нужно да сортирате (но само тогава), можете да опростите до
select a,b,c, rn from
( select a,b,c, rownum rn from the_table where rownum < Y )
where rn > X