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
Anleitung: With
— komplexe Abfragen strukturieren
Sub-Klauseln:
Andere formen:
with recursive
in Unterabfragen
Nicht-Standard Formen: connect by
Die With recursive
-Klausel ist in ISO/IEC 9075:2016-2 als Teil des optionalen Features T131, „Recursive query“ definiert, erlaubt aber keine nicht-linearen Rekursionen (§7.17 Syntax Rule 3 j x).
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.
Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how