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 |