rownum est une pseudo-colonne qui compte les lignes dans le jeu de résultats après la clause where a été appliquée.
C'est ce que vous essayez d'obtenir ?
SELECT *
FROM (
SELECT id, column1, column2
FROM atable ORDER BY 2 DESC
)
WHERE ROWNUM < 100;
Comme il s'agit d'une pseudo-colonne qui est strictement un compteur de lignes résultant de la clause where, elle ne vous permettra pas de faire de pagination (c'est-à-dire entre 200 et 300).
C'est probablement ce que vous cherchez :
SELECT *
FROM
(SELECT a.*, rownum rnum FROM
(SELECT id, column1, column2 FROM atable ORDER BY 2 DESC) a WHERE rownum <= 300)
WHERE rnum >= 200;