dcw et Dems ont fourni des requêtes alternatives appropriées. Je voulais juste vous expliquer pourquoi votre requête ne se comporte pas comme vous l'espériez.
Si vous avez une requête qui inclut un ROWNUM et un ORDER BY, Oracle applique d'abord le ROWNUM, puis le ORDER BY. Donc la requête
SELECT *
FROM emp
WHERE rownum <= 5
ORDER BY empno
obtient 5 lignes arbitraires à partir du EMP
table et les trie-- presque certainement pas ce qui était prévu. Si vous souhaitez obtenir les "premières N" lignes à l'aide de ROWNUM, vous devez imbriquer la requête. Cette requête
SELECT *
FROM (SELECT *
FROM emp
ORDER BY empno)
WHERE rownum <= 5
trie les lignes de la table EMP et renvoie les 5 premières.