Er is alleen een nogal ingewikkelde manier om dit te doen, wat erg lastig is met Oracle. Ze zouden gewoon een LIMIT/OFFSET-clausule moeten implementeren...
Het rijnummer wordt na . toegewezen de rij is geselecteerd door de waar-clausule, zodat een rijnummer altijd moet beginnen met 1. where rownum > x
zal altijd evalueren naar onwaar.
Rownum wordt ook toegewezen voordat het sorteren is voltooid , dus het rijnummer zal niet in dezelfde volgorde staan als uw bestelling door zegt.
U kunt beide problemen omzeilen met een subselectie:
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
Als u niet hoeft te sorteren (maar alleen dan), kunt u vereenvoudigen tot
select a,b,c, rn from
( select a,b,c, rownum rn from the_table where rownum < Y )
where rn > X