In SQL Server kann eine SELECT-Anweisung ausgeführt werden, ohne auf eine Tabelle zu verweisen, und zwar mit einer Syntax wie:
Select 1.2 +3, 'my dummy string'
Allerdings erlaubt Oracle keine SELECT-Anweisung ohne FROM-Klausel. Um solche Abfragen in Oracle auszuführen, wird häufig die Dual-Tabelle verwendet:
Select 1,2+3, 'my dummy string' FROM DUAL
Da stellt sich die Frage: Gibt es eine bessere Möglichkeit, diese Art von Abfrage in Oracle durchzuführen? Lassen Sie uns die Antwort untersuchen.
Nein, Oracle erlaubt keine SELECT-Anweisungen ohne eine FROM-Klausel. Die Verwendung der Dual-Tabelle gilt als bewährte Vorgehensweise.
Dual ist eine In-Memory-Tabelle, die einen schnellen Zugriffspfad ohne E/A-Anforderungen bietet. Ursprünglich enthielt es zwei Datensätze und wurde zum Duplizieren von Datensätzen für JOIN-Vorgänge verwendet. Heute hat es nur einen Datensatz, kann aber mit der CONNECT BY-Klausel immer noch beliebig viele Zeilen generieren:
SELECT level FROM dual CONNECT BY level <= 100
Andere Datenbanken wie MySQL unterstützen auch die Dualtabelle und die Fromless-Syntax. Die Syntax von MySQL ähnelt der von SQL Server:
Select 1.2 +3, 'my dummy string'
Das obige ist der detaillierte Inhalt vonGibt es eine bessere Alternative zur Verwendung der DUAL-Tabelle in Oracle für SELECT-Anweisungen ohne FROM-Klausel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!