sql >> Database teknologi >  >> RDS >> Oracle

SQL-forespørgsel for at returnere N rækker fra dual

Du kan bruge:

 WHERE ROWNUM <= :NUM

...men tabellen skal indeholde række lig med eller større til grænsen i bind-variablen. Dette link demonstrerer forskellige teknikker til generering af rækkenummer i Oracle .

Brug CONNECT BY , Oracle 10g+:

SELECT LEVEL
  FROM DUAL
CONNECT BY LEVEL <= :NUM

Bekræftet af monojohnny at bindevariablen kan bruges. Forsøg på at køre på Oracle 9i, dog CONNECT BY syntaks understøttes, resulterer i en ORA-01436-fejl.

Det eneste, jeg ikke er 100 % på, er, om CONNECT BY accepterer grænsen fra bind-variablen.

Reference:



  1. InnoDB indekserer før og efter import

  2. Ingen execution plan caching for dynamisk SQL i PostgreSQL 9.4?

  3. Hvad er nyt i PostgreSQL 12

  4. php læsning mysql bit felt returnerer mærkelig karakter