rownum je pseudosloupec, který počítá řádky v sadě výsledků po byla použita klauzule kde.
Je to to, co se snažíte získat?
SELECT *
FROM (
SELECT id, column1, column2
FROM atable ORDER BY 2 DESC
)
WHERE ROWNUM < 100;
Protože se jedná o pseudosloupec, který je striktně čítačem řádků vyplývajících z klauzule where, neumožňuje vám stránkování (tj. mezi 200 a 300).
Toto je pravděpodobně to, co hledáte:
SELECT *
FROM
(SELECT a.*, rownum rnum FROM
(SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;