with recursive (Hauptabfrage)


Apache DerbyBigQueryDb2 (LUW)H2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite20072009201120132015201720192021✓ 3.8.3 - 3.43.0⊘ 3.5.7 - 3.7.11⚠ 2008R2 - 2022a✓ 8.4 - 16⊘ 8.3⚠ 11gR2 - 21ca⊘ 11gR1✓ 8.0.11 - 8.0.34⊘ 5.0 - 5.7✓ 10.2 - 10.11⊘ 5.1 - 10.1✓ 1.4.199 - 2.2.220⊘ 1.4.191⚠ 9.7 - 11.5.8ab⚠ 2.0c⊘ 10.15.1.3 - 10.16.1.1
  1. Ohne dem Schlüsselwort Recursive
  2. Kein Join im rekursiven Zeit – verwendet stattdessen einen Komma-Join (,)
  3. Ohne Spaltenliste: WITH RECURSIVE query_name AS (SELECT…)

Mit with recursive kann eine Abfrage auf das eigene Ergebnis zugreifen:

WITH RECURSIVE abfrage_name (spalten_name, …) AS (
   SELECT …
     FROM …
UNION ALL
   SELECT …
     FROM abfrage_name -- <= Beachte die Selbst-Referenz
) [, …]
SELECT …
  FROM abfrage_name

Normative Referenzen

Die With recursive-Klausel ist in ISO/IEC 9075-2:2023 §7.17 als Teil des optionalen Features T131, „Recursive query“ definiert.

20 Jahre SQL-Evolution kann man nicht an einem Tag nachholen. Abonniere den Newsletter via E-Mail, Twitter oder RSS, um sukzessive aufzuholen und modern-sql.com am Radar zu behalten.

Über den Autor

Foto von Markus Winand

Markus Winand gibt auf modern-sql.com Einblick in SQL und zeigt, wie es von verschiedenen Systemen unterstützt wird. Zuvor machte er use-the-index-luke.com, was er noch immer wartet. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Sein Buch kaufen

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

Die Essenz: SQL-Tuning auf 200 Seiten

Jetzt Kaufen
(Taschenbuch und/oder PDF)

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