Da 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






