Både dcw og Dems har leveret passende alternative forespørgsler. Jeg ville bare give en forklaring på, hvorfor din forespørgsel ikke opfører sig, som du havde forventet.
Hvis du har en forespørgsel, der inkluderer en ROWNUM og en ORDER BY, anvender Oracle først ROWNUM og derefter ORDER BY. Så forespørgslen
SELECT *
FROM emp
WHERE rownum <= 5
ORDER BY empno
får vilkårlige 5 rækker fra EMP
bord og sorterer dem - næsten helt sikkert ikke, hvad der var meningen. Hvis du vil have de "første N" rækker ved hjælp af ROWNUM, skal du indlejre forespørgslen. Denne forespørgsel
SELECT *
FROM (SELECT *
FROM emp
ORDER BY empno)
WHERE rownum <= 5
sorterer rækkerne i EMP-tabellen og returnerer de første 5.