Zowel dcw als Dems hebben passende alternatieve zoekopdrachten gegeven. Ik wilde alleen uitleggen waarom uw vraag niet werkt zoals u had verwacht.
Als u een query hebt die een ROWNUM en een ORDER BY bevat, past Oracle eerst de ROWNUM toe en vervolgens de ORDER BY. Dus de vraag
SELECT *
FROM emp
WHERE rownum <= 5
ORDER BY empno
krijgt een willekeurige 5 rijen van de EMP
tafel en sorteert ze - vrijwel zeker niet wat de bedoeling was. Als u de "eerste N" rijen wilt krijgen met ROWNUM, moet u de query nesten. Deze vraag
SELECT *
FROM (SELECT *
FROM emp
ORDER BY empno)
WHERE rownum <= 5
sorteert de rijen in de EMP-tabel en geeft de eerste 5 terug.