rownum - это псевдостолбец, который считает строки в наборе результатов после , где было применено предложение where.
Это то, что вы пытаетесь получить?
SELECT *
FROM (
SELECT id, column1, column2
FROM atable ORDER BY 2 DESC
)
WHERE ROWNUM < 100;
Поскольку это псевдостолбец, который является строго счетчиком строк, являющихся результатом предложения where, он не позволяет выполнять разбиение на страницы (то есть между 200 и 300).
Это, вероятно, то, что вы ищете:
SELECT *
FROM
(SELECT a.*, rownum rnum FROM
(SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;