Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL-Abfrage, um N Zeilen von dual zurückzugeben

Sie könnten Folgendes verwenden:

 WHERE ROWNUM <= :NUM

...aber die Tabelle muss Zeilen enthalten, die gleich oder größer als das Limit in der Bindevariablen sind. Dieser Link zeigt verschiedene Techniken zur Generierung von Zeilennummern in Oracle .

Mit CONNECT BY , Oracle 10g+:

SELECT LEVEL
  FROM DUAL
CONNECT BY LEVEL <= :NUM

Bestätigt durch monojohnny dass die Bindevariable verwendet werden kann. Versucht, auf Oracle 9i ausgeführt zu werden, obwohl CONNECT BY Syntax unterstützt wird, führt zu einem ORA-01436-Fehler.

Das einzige, bei dem ich nicht 100% bin, ist, ob CONNECT BY das Limit von der Bind-Variablen akzeptiert.

Referenz: