ROWNUM
er ikke tildelt, før du forespørger, så du vil ikke være i stand til at bruge det i en WHERE sådan klausul.
Du kan gøre følgende:
SELECT COUNT(*)
FROM
(
select v1, v2, rownum rn
from Foo
) f
WHERE mod(rn,2) = 0;
ROWNUM er rækkens position i resultatsættet, og den evalueres efter at posterne er valgt.
Disse typer forespørgsler vil aldrig fungere:
WHERE ROWNUM > x
WHERE ROWNUM BETWEEN x AND y
Men dette vil virke
WHERE ROWNUM < x
Da du ønsker at evaluere rownum med mod funktion vil det ikke fungere, fordi rownum er ikke tilgængelig på det tidspunkt. Det er derfor, du skal placere den i en underforespørgsel for at bruge mod fungere.