sql / expert
Snippet
Rekursive Common Table Expressions (CTEs)
Rekursive CTEs werden verwendet, um hierarchische Datenstrukturen wie Organigramme oder Stücklisten zu durchlaufen. Sie bestehen aus einem Anker-Element und einem rekursiven Element, die durch UNION ALL verbunden sind.
snippet.sql
1
2
3
4
5
6
7
8
9
10
WITH RECURSIVE subordinates AS (SELECT employee_id, manager_id, nameFROM employeesWHERE manager_id IS NULLUNION ALLSELECT e.employee_id, e.manager_id, e.nameFROM employees eINNER JOIN subordinates s ON s.employee_id = e.manager_id)SELECT * FROM subordinates;
Erklärung
1
WITH RECURSIVE subordinates AS
Definiert den Namen der CTE und markiert sie als rekursiv.
2
WHERE manager_id IS NULL
Das Anker-Element: Wählt den Startpunkt aus (z. B. den CEO).
3
INNER JOIN subordinates s ON s.employee_id = e.manager_id
Das rekursive Element: Verbindet die Tabelle erneut mit der CTE, um die nächste Ebene der Hierarchie zu finden.