Die SQL WITH-Klausel wurde von Oracle in der Oracle 9i Release 2-Datenbank eingeführt. Mit der SQL WITH-Klausel können Sie einem Unterabfrageblock einen Namen geben (ein Prozess, der auch als Unterabfrage-Refactoring bezeichnet wird), auf den an mehreren Stellen innerhalb der SQL-Hauptabfrage verwiesen werden kann. Der der Unterabfrage zugewiesene Name wird so behandelt, als wäre es eine Inline-Ansicht oder Tabelle. Die SQL WITH-Klausel ist im Grunde ein Ersatz für die normale Unterabfrage.
Syntax für die SQL-WITH-Klausel
Das Folgende ist die Syntax der SQL-WITH-Klausel, wenn eine einzelne Unter Abfrage Pseudonyms gestattet.
WITH <alias_name> AS (sql_subquery_statement)
SELECT column_list FROM <alias_name>[,table_name]
[WHERE <join_condition>]
Bei Verwendung mehrerer Unterabfragealiase ist die Syntax wie folgt.
WITH <alias_name_A> AS (sql_subquery_statement),
<alias_name_B> AS(sql_subquery_statement_from_alias_name_A
or sql_subquery_statement)
SELECT <column_list>
FROM <alias_name_A>, <alias_name_B> [,table_names]
[WHERE <join_condition>]
In der Syntax Dokumentation oben, ist das Auftreten von alias_name
ein sinnvoller Name für die Unterabfrage nach der AS-Klausel geben würde. Jede Unterabfrage sollte durch ein Komma Example for WITH statement getrennt werden. Die übrigen Abfragen folgen den Standardformaten für einfache und komplexe SQL SELECT-Abfragen.
Für weitere Informationen: http://www.brighthub.com/internet/web-development/articles/91893.aspx
http://msdn.microsoft.com/en-us/library/ms175972(v=sql.105).aspx – Vikdor
verwendest du MYSQL? b/c wird nicht unterstützt. –
Ich habe ein Beispiel zusammengestellt, wie man die WITH-Klausel benutzt, um eine temporäre statische Tabelle zu erstellen. Sie können dies nützlich finden, da es einige Beispiele zur Verwendung von WITH-Klauseln in Ihren Abfragen enthält. http://www.giombetti.com/2014/02/14/using-sql-with-clause-to-create-temporary-static-tables-at-query-time/ –