我正在尋找某種方式從下面定義的樹形表中提取數據。MS SQL服務器和樹
表樹定義爲: -
TreeID唯一標識符
TreeParent唯一標識符
TreeCode VARCHAR(50)
TreeDesc VARCHAR(100)
數據一些(23K行),父參考文獻放回在表ID
下面的SQL使得整個樹(以防萬一需要2分鐘30)
我需要做的跟隨着G。
1)渲染每個樹節點與它的LVL 1父
2)渲染具有一個匹配像「SomeText%」
3)TreeDesc渲染是用於單個樹ID的所有父節點說明的所有節點。
物品2和3需要2分鐘30,所以這需要更快!
第1項,只是不能工作,如何做它用出來殺死SQL或採取永遠
任何sugestions將是有益的
感謝
朱利安
WITH TreeCTE(TreeCode, TreeDesc, depth, TreeParent, TreeID)
AS
(
-- anchor member
SELECT cast('' as varchar(50)) as TreeCode ,
cast('Trees' as varchar(100)) as TreeDesc,
cast('0' as Integer) as depth,
cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier) as TreeParent,
cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier) as TreeID
UNION ALL
-- recursive member
SELECT s.TreeCode,
s.TreeDesc,
cte.depth+1,
isnull(s.TreeParent, cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier)),
isnull(s.TreeID, cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier))
FROM pdTrees AS S
JOIN TreeCTE AS cte
ON isnull(s.TreeParent, cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier)) = isnull(cte.TreeID , cast('00000000-0000-0000-0000-000000000000' as uniqueidentifier))
)
-- outer query
SELECT
s.TreeID, s.TreeCode, s.TreeDesc, s.depth, s.TreeParent
FROM TreeCTE s
你以前把索引你的桌子上的 – Robert 2010-04-15 09:51:55
我有同樣的問題多次:|?你_sure_,你需要渲染SQL Server中的樹不能嗎?只需選擇行並在一個簡單的sc中渲染即可ript(並緩存結果)? – 2010-05-27 12:05:46