[SQL] STORED PROCEDURE 產生樹狀目錄上層/下層方法

  • 7408
  • 0
  • SQL
  • 2011-07-25

摘要:[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 則是用來判斷為第幾層的節點,正的為下層  負的為上層。

以上。

 

 

 


以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)