Wählen Sie ohne FROM-Klausel in Oracle aus
in SQL Server möglich ist, führen Sie eine SELECT, ohne Verweis auf eine Tabelle, so etwas wie:
Select 1.2 +3, 'my dummy string'
Als Oracle nicht möglich, WÄHLEN Sie ohne AUS, benutze ich die dual-Tabelle, die für diese Art der operation; so etwas wie:
Select 1,2+3, 'my dummy string' FROM DUAL
Gibt es eine bessere Art, das zu tun diese Art der Abfrage? es ist gute Praxis, um die dual-Tabelle?
InformationsquelleAutor der Frage RRUZ | 2009-12-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, in
Oracle
es gibt keineSELECT
ohneFROM
.Mithilfe der
dual
Tabelle ist eine gute Praxis.dual
ist eine in-memory-Tabelle. Wenn Sie nicht wählenDUMMY
aus, es verwendet einen speziellen Zugriff auf Pfad (FAST DUAL
) das erfordert keineI/O
.Once upon a time
dual
hatte zwei Datensätze (daher der name), und Sie sollen dienen als ein dummy-Recordsets zum duplizieren von Datensätzen, die verbunden werden mit.Nun hat es aber eine Aufzeichnung, aber Sie können immer noch generieren, eine beliebige Anzahl von Zeilen mit:
MySQL
unterstützt auchdual
(sowie die fromless syntax).InformationsquelleAutor der Antwort Quassnoi
nicht vergessen, dass die meisten der Zeit, die Sie nicht wirklich brauchen, zu verwenden WÄHLEN.
Statt:
können Sie
InformationsquelleAutor der Antwort Vincent Malgrat
Ja, die dual-Tabelle ist in der Regel für genau diesen Zweck. Es ist ziemlich standard in Oracle, wenn du keine Tabelle zur Auswahl.
InformationsquelleAutor der Antwort dcp
Ich denke, du musst mit dual. es wird verwendet, wenn Sie ausführen müssen, um den SQL, der nicht über den Namen einer Tabelle. Ich kann nicht sagen, ich benutze es viel anders als in SQL-Skripten, um das echo aus dem Datum etwas ran kommt oder so dumm wie die.
InformationsquelleAutor der Antwort tmeisenh
Ja, die dual-Tabelle ist der übliche Weg, dies zu tun in der Oracle. Als eine Angelegenheit von der Tat, es wurde nur für diese.
Die wichtigsten Vorteile von DUAL ist, dass der optimizer in Oracle weiß, es ist etwas besonderes, also Abfragen mithilfe kann es schneller sein, als wenn Sie eine einzeilige Tabelle, die Sie selbst gemacht haben. Other than, die es ist nichts besonderes.
InformationsquelleAutor der Antwort sleske
Eigentlich, SQL Server Implementierung ist nicht standard. Die SQL-92-Standard (Abschnitt 7.9) benötigt eine FROM-Klausel in einer SELECT-Anweisung. DUAL ist Oracle die Möglichkeit, eine Tabelle zu wählen Sie aus, um einen skalaren Zeile.
InformationsquelleAutor der Antwort DCookie