使用SQL SERVER 2005/2008 遞迴CTE查詢樹型結構
我們經常遇到樹型結構,把它們顯示在一個類似TreeView控制元件上的情況。這時我們可以使用Recursive Common Table Expressions(CTE)實現。下面是一個簡單的Family Tree 示例:
1: DECLARE @TT TABLE (ID int,Relation varchar(25),Name varchar(25),ParentID int)
2: INSERT @TT SELECT 1,' Great GrandFather' , 'Thomas Bishop', null UNION ALL
3: SELECT 2,'Grand Mom', 'Elian Thomas Wilson' , 1 UNION ALL
4: SELECT 3, 'Dad', 'James Wilson',2 UNION ALL
5: SELECT 4, 'Uncle', 'Michael Wilson', 2 UNION ALL
6: SELECT 5, 'Aunt', 'Nancy Manor', 2 UNION ALL
7: SELECT 6, 'Grand Uncle', 'Michael Bishop', 1 UNION ALL
8: SELECT 7, 'Brother', 'David James Wilson',3 UNION ALL
9: SELECT 8, 'Sister', 'Michelle Clark', 3 UNION ALL
10: SELECT 9, 'Brother', 'Robert James Wilson', 3 UNION ALL
11: SELECT 10, 'Me', 'Steve James Wilson', 3
12:
13: ----------Query---------------------------------------
14: ;WITH FamilyTree
15: AS(
16: SELECT *, CAST(NULL AS VARCHAR(25)) AS ParentName, 0 AS Generation FROM @TT
17: WHERE ParentID IS NULL
18: UNION ALL
19: SELECT Fam.*,FamilyTree.Name AS ParentName, Generation + 1 FROM @TT AS Fam
20: INNER JOIN FamilyTree ON Fam.ParentID = FamilyTree.ID
21: )SELECT * FROM FamilyTree
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-609722/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Sql Server 使用CTE實現遞迴查詢SQLServer遞迴
- SQL2005/2008中的CTE應用--遞迴查詢SQL遞迴
- SQL Server2005使用CTE實現遞迴QCSQLServer遞迴
- SQL Server遞迴查詢SQLServer遞迴
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- Java實現遞迴查詢樹結構Java遞迴
- SQL Server 2005資料庫中表的遞迴查詢SQLServer資料庫遞迴
- MS SQL Server的遞迴查詢SQLServer遞迴
- Sql Server 2005/2008 SqlCacheDependency查詢通知的使用總結SQLServer
- MS SQL Server的遞迴查詢(2)SQLServer遞迴
- SQL Server中CTE的另一種遞迴方式-從底層向上遞迴SQLServer遞迴
- Oracle遞迴查詢sqlOracle遞迴SQL
- SQL SERVER 2008 CTE生成結點的FullPathSQLServer
- oracle之樹狀結構的儲存與展示(遞迴查詢)Oracle遞迴
- JS遞迴過濾樹形結構陣列物件--模糊查詢JS遞迴陣列物件
- 通用-遞迴樹結構遞迴
- sql無限遞迴查詢SQL遞迴
- sql遞迴查詢子級SQL遞迴
- Oracle SQL的遞迴查詢OracleSQL遞迴
- js樹型結構資料簡易遞迴JS遞迴
- 【資料結構】——搜尋二叉樹的插入,查詢和刪除(遞迴&非遞迴)資料結構二叉樹遞迴
- 遞迴樹形查詢所有分類遞迴
- Mysql 實現樹狀遞迴查詢MySql遞迴
- 樹結構表遞迴查詢在ORACLE和MSSQL中的實現方法遞迴OracleSQL
- sql server遞迴SQLServer遞迴
- SQL server資料庫with as子句與遞迴查詢的實現SQLServer資料庫遞迴
- kingbase SQL最佳化案例 ( union遞迴 改 cte遞迴 )SQL遞迴
- 樹結構表遞迴查詢在ORACLE和MSSQL中的實現方法 [續]遞迴OracleSQL
- SQL Server 2005:查詢統計資訊SQLServer
- SQL Server 2008 查詢優化SQLServer優化
- oracle中的遞迴sql查詢 connect by prior實現遞迴Oracle遞迴SQL
- PostgreSQL 遞迴查詢SQL遞迴
- PostgreSQL=>遞迴查詢SQL遞迴
- SqlServer遞迴查詢SQLServer遞迴
- ORACLE 遞迴查詢Oracle遞迴
- sqlalchemy 遞迴查詢SQL遞迴
- 【資料結構】二叉樹遍歷(遞迴+非遞迴)資料結構二叉樹遞迴
- Sql server2005 優化查詢速度50個方法小結SQLServer優化