插入比方說你有一個表作爲這樣的(SQL SERVER 2005)的SQL Server 2005 - CTE,保留值和數據集
pairID childID parentID
0 1 2
1 2 3
2 3 4
你的CTE返回此數據集:
pairID childID parentID level
0 1 2 2
1 2 3 1
2 3 4 0
你如何保存初始子ID,這樣你會得到這樣的結果,而不是設置:
pairID childID parentID level
0 1 2 2
1 1 3 1
2 1 4 0
所以基本上什麼我做的是保持原來的子ID並返回一個,而不是其他...
這是CTE查詢到今天爲止,它完美的作品:
WITH TESTER AS (SELECT a.PairID,
a.ChildID,
a.ParentID,
0 AS Level
FROM
BusinessHierarchy AS a
LEFT OUTER JOIN BusinessHierarchy AS a2
ON a.ParentID = a2.ChildID
WHERE (a2.PairID IS NULL)
UNION ALL
SELECT b.PairID, b.ChildID, b.ParentID, oh.Level + 1 AS Level
FROM BusinessHierarchy AS b INNER JOIN
TESTER AS oh ON b.ParentID = oh.ChildID)
SELECT PairID, ChildID, ParentID, Level
FROM TESTER AS x
ORDER BY Level, ChildID, ParentID
這不是隻發生過一次@StartingID的初始人口嗎?每個不同的層次組會發生什麼? – flavour404 2010-01-12 02:45:21
它只發生一次。如果你想讓它發生更多的事情,你必須給我們提供更多關於你在桌面上有什麼以及你想要做什麼的信息。 – 2010-01-12 03:12:49