rownum er en pseudokolonne, der tæller rækker i resultatsættet efter hvor-klausulen er blevet anvendt.
Er det det, du prøver at få?
SELECT *
FROM (
SELECT id, column1, column2
FROM atable ORDER BY 2 DESC
)
WHERE ROWNUM < 100;
Fordi det er en pseudo-kolonne, der udelukkende er en tæller af rækker, der stammer fra where-sætningen, vil den ikke tillade dig at foretage paginering (dvs. mellem 200 og 300).
Dette er sandsynligvis, hvad du leder efter:
SELECT *
FROM
(SELECT a.*, rownum rnum FROM
(SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;