摘要:[SQL] STORE PROCED 產生樹狀目錄上層/下層方法
使用SQL的STORED PROCEDURE可以很快的找出樹狀目錄的節點分佈
方法如下:
--找出下層節點
--產生暫存Table
WITH tmpTree (ID, ParentID, Name, lvl) AS (
--取得根節點
SELECT ID, ParentID, Name, 0 FROM tblTree WHERE ID=@ID
UNION All
SELECT a.ID, a.ParentID ,a.Name, b.lvl+1
FROM tblTree a INNER JOIN tmpTree b on a.ParentID=b.ID
)
INSERT INTO #ResultTree SELECT * FROM tmpTree;
--找出上層節點
--產生暫存Table
WITH tmpTree (ID, ParentID, Name, lvl) AS (
--取得根節點
SELECT ID, ParentID, Name, 0 FROM tblTree WHERE ID=@ID
UNION All
SELECT a.ID, a.ParentID ,a.Name, b.lvl-1
FROM tblTree a INNER JOIN tmpTree b on a.ID=b.ParentID
)
INSERT INTO #ResultTree SELECT * FROM tmpTree;
如此就會產生一個下層節點的目錄結構跟一個上層節點的目錄結構
lvl 則是用來判斷為第幾層的節點,正的為下層 負的為上層。
以上。
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)