with recursive (nicht-linear)


BigQueryDb2 (LUW)DerbyH2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite20052007200920112013201520172019202120233.34.0 - 3.50.03.5.7 - 3.33.02008R2 - 20228.3 - 1711gR1 - 23.98.0.11 - 9.3.05.0 - 5.710.2 - 12.0.25.1 - 10.11.4.191 - 2.3.23210.15.1.3 - 10.17.1.09.7 - 12.1.22.0

Eine nicht-lineare Rekursion greift mehrfach auf das eigene Ergebnis zu:

WITH RECURSIVE abfrage_name (c) AS (
   VALUES (1)
   UNION
   SELECT x FROM abfrage_name JOIN basis_tabelle
                                ON basis_tabelle.x = query_name.c
   UNION
   SELECT y FROM abfrage_name JOIN basis_tabelle
                                ON basis_tabelle.y = query_name.c
)
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, erlaubt aber keine nicht-linearen Rekursionen (ISO/IEC 9075-2:2023 §7.17 SR 3jx).

20 Jahre SQL-Evolution kann man nicht an einem Tag nachholen. Abonniere den Newsletter via E-Mail, Bluesky 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»

Neuigkeiten Abonnieren

Markus Winands MailinglistenMarkus Winands RSS-FeedMarkus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf TwitterMarkus Winand auf Bluesky
Copyright 2015-2025 Markus Winand. Alle Rechte vorbehalten.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz und DSGVO