Angenommen ich diese Tabelle haben: (c
ein Kind von Eltern ist p
)Sortierte Hierarchiezeilen im SQL Server anzeigen?
c p
------
40 0
2 3
2 40
3 1
7 2
1 0
Wo (0
bedeutet root) - Ich möchte die Reihenfolge wählen, wie angezeigt werden:
c b
------
1 0
3 1
2 3
40 0
2 40
7 2
Das ist denn wir haben 2 Wurzeln (1,40) und 1 < 40.
So beginnen wir bei 1
und dann darunter anzeigen - alles ist es Nachkommen.
Dann kommen wir zu 40
. gleiche Logik wieder.
Frage:
Wie kann ich es tun? + Suche nach Hierarchieebene *
Ich habe gelang es rekursiv angezeigt werden (nicht sicher, ob es allerdings hilft) *
WITH cte(c, p) AS (
SELECT 40, 0 UNION ALL
SELECT 2,3 UNION ALL
SELECT 2,40 UNION ALL
SELECT 3,1 UNION ALL
SELECT 7,2 UNION ALL
SELECT 1,0
) , cte2 AS(
SELECT c,
p,
PLevel = 1
FROM cte
WHERE p = 0
UNION ALL
SELECT cte.c,
cte.p,
PLevel = cte2.PLevel + 1
FROM cte
INNER JOIN cte2
ON cte2.c = cte.p
)
SELECT *
FROM cte2