U kunt rownum
niet gebruiken soortgelijk. rownum
wordt berekend wanneer de waarden daadwerkelijk uit de query worden geretourneerd - alleen wanneer een rij wordt geretourneerd. Vandaar de uitspraak:
where rownum = 2
zal nooit een waarde retourneren, omdat er een "1" moet staan voor een "2".
Als u Oracle 12+ gebruikt, kunt u de offset
. gebruiken clausule met fetch first <n> rows only
. In eerdere versies kunt u row_number() over ()
om een rijnummer als kolom te berekenen en dat te gebruiken in de where
.
Eigenlijk gebruikt uw zoekopdracht al een subquery, dus u kunt zoiets doen als:
select *
from (select . . .,
row_number() over (order by Request_ID, Actual_Start_Date) as rn
. . .
) t
WHERE rn < (1000000 * to_Number(:X) and)
rn >= (1000000 * (to_Number(:X)-1))