18.7. Wie selektiere ich nur bestimmte Zeilen (LIMIT unter MySQL)?Antwort von Thomas FrommDa Oracle über kein Limit verfügt gestaltet sich die Abfrage etwas komplizierter (das Beispiel funktioniert erst ab Version 8.1):
SELECT *
FROM
(SELECT ROWNUM rownum2, inline_view1.*
FROM
(SELECT ROWNUM rownum1, ename, hiredate
FROM emp
ORDER BY hiredate
) inline_view1 -- zum Sortieren (ROWNUM hier noch ungeordnet)
) inline_view2 -- ROWNUM spiegelt jetzt die Sortierung wider
WHERE rownum2 BETWEEN 5 AND 7
Dies ist nicht sonderlich schnell, weil die innere Abfrage alle Zeilen auswählt. Für Versionen ab 8.1.6 geht auch folgendes:
SELECT *
FROM
(SELECT ROW_NUMBER()
OVER(ORDER BY hiredate) rownum1, ename, hiredate
FROM emp
) inline_view1
WHERE rownum1 BETWEEN 5 AND 7
/
Will man lediglich n Zeilen ausgeben tuts auch dies: SELECT * FROM (SELECT ename, hiredate FROM emp ORDER BY hiredate) WHERE ROWNUM < 6 |
||
| 18.7. Wie selektiere ich nur bestimmte Zeilen (LIMIT unter MySQL)? http://www.php-faq.de/q/q-oracle-limit.html |
||
| Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team | ||