Geht das… with (nicht-rekursiv in Unterabfragen)


Apache DerbyBigQueryDb2 (LUW)H2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite20052007200920112013201520172019202110.15.2.011.5.71.4.1992.1.21010.210.78.0.1121c8.420193.8.33.38.0a,bb,c,dbb,c,eb,dda,b,c,d,fa,bfdb,cc,ff
  1. Nur ohne Spaltennamen: WITH name AS (SELECT…)
  2. CTEs in Unterabfragen können globale CTEs nicht sehen
  3. With impliziert recursive
  4. With-Namen verdecken sogar qualifizierte Schema-Namenn (Schema.Tablle)
  5. With-Namen verdecken Schema-Objekte nicht
  6. With-Namen sind in Ansichten (Views) sichtbar, auf die zugegriffen wird

Die With-Klausel kann auch in Unterabfragen verwendet werden um die Sichtbarkeit damit noch weiter einzuschränken:

SELECT …
  FROM (  WITH …
        SELECT …
          FROM …
       ) Tabellenname

Normative Referenzen

Die With Recursive-Klausel in Unterabfragen ist in ISO/IEC 9075:2016-2 als optionales Feature T122, „WITH (excluding RECURSIVE) in subquery“ definiert.

Über den Autor

Foto von Markus Winand

Markus Winand ist der SQL Renaissance Botschafter auf der Mission, Entwickler auf die Evolution von SQL im 21. Jahrhundert aufmerksam zu machen. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Sein Buch bei Amazon kaufen

Titelbild von „SQL Performance Explained“: Eichhörnchen läuft durchs Grass

Die Essenz: SQL-Tuning auf 200 Seiten

Bei Amazon kaufen
(Taschenbuch)

Taschenbuch und PDF auch auf Markus' Webseite erhältlich.

Sein Training

Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how

Erfahren Sie mehr»

Mit Markus Winand verbinden

Markus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf Twitter
„modern SQL“ von Markus Winand ist unter einer Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License lizenziert.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz und DSGVO | CC-BY-NC-ND 3.0 Lizenz