5
Ich möchte Daten in der Tabelle mit Baumstruktur setzen.Holen Sie bestimmte Knoten Pfad von Root Tsql
DECLARE @temp TABLE
(
Id INT
, Name VARCHAR(50)
, Parent INT
)
INSERT @temp
SELECT 1,' Great GrandFather Thomas Bishop', null UNION ALL
SELECT 2,'Grand Mom Elian Thomas Wilson' , 1 UNION ALL
SELECT 3, 'Dad James Wilson',2 UNION ALL
SELECT 4, 'Uncle Michael Wilson', 2 UNION ALL
SELECT 5, 'Aunt Nancy Manor', 2 UNION ALL
SELECT 6, 'Grand Uncle Michael Bishop', 1 UNION ALL
SELECT 7, 'Brother David James Wilson',3 UNION ALL
SELECT 8, 'Sister Michelle Clark', 3 UNION ALL
SELECT 9, 'Brother Robert James Wilson', 3 UNION ALL
SELECT 10, 'Me Steve James Wilson', 3
Wie kann ich Pfad von Knoten von Root für bestimmte Knoten bekommen?
Zum Beispiel für Id IN (2, 5, 10)
Ergebnis ist:
Id Result
2 Great GrandFather Thomas Bishop -> Grand Mom Elian Thomas Wilson
5 Great GrandFather Thomas Bishop -> Grand Mom Elian Thomas Wilson -> Aunt Nancy Manor
10 Great GrandFather Thomas Bishop -> Grand Mom Elian Thomas Wilson -> Dad James Wilson -> Me Steve James Wilson
Für eine ID ich diesen T-SQL-Code zu verwenden, Bitte füllen sie:
;WITH cte AS
(
SELECT *, t = 1
FROM @temp
WHERE Id = 10 -- <-- your id
UNION ALL
SELECT t2.*, t + 1
FROM cte t
JOIN @temp t2 ON t.Parent = t2.Id
)
SELECT STUFF((
SELECT ' -> ' + Name
FROM cte
ORDER BY t DESC
FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'), 1, 4, '')
Go
Wenn ich FOR XML PATH('')
Geschwindigkeit niedrig verwenden, wie kann Ich verwende deinen T-SQL-Code ohne ihn?
habe meine Antwort Ihr Problem lösen? –