使用SQLSERVER 2005/2008 遞歸CTE查詢樹(shù)型結(jié)構(gòu)的方法
DECLARE @TT TABLE (ID int,Relation varchar(25),Name varchar(25),ParentID int)
INSERT @TT SELECT 1,' Great GrandFather' , 'Thomas Bishop', null UNION ALL
SELECT 2,'Grand Mom', 'Elian Thomas Wilson' , 1 UNION ALL
SELECT 3, 'Dad', 'James Wilson',2 UNION ALL
SELECT 4, 'Uncle', 'Michael Wilson', 2 UNION ALL
SELECT 5, 'Aunt', 'Nancy Manor', 2 UNION ALL
SELECT 6, 'Grand Uncle', 'Michael Bishop', 1 UNION ALL
SELECT 7, 'Brother', 'David James Wilson',3 UNION ALL
SELECT 8, 'Sister', 'Michelle Clark', 3 UNION ALL
SELECT 9, 'Brother', 'Robert James Wilson', 3 UNION ALL
SELECT 10, 'Me', 'Steve James Wilson', 3
----------Query---------------------------------------
;WITH FamilyTree
AS(
SELECT *, CAST(NULL AS VARCHAR(25)) AS ParentName, 0 AS Generation FROM @TT
WHERE ParentID IS NULL
UNION ALL
SELECT Fam.*,FamilyTree.Name AS ParentName, Generation + 1 FROM @TT AS Fam
INNER JOIN FamilyTree ON Fam.ParentID = FamilyTree.ID
)SELECT * FROM FamilyTree
Output:
希望對(duì)您有幫助
Author: Petter Liu
- sql server使用公用表表達(dá)式CTE通過(guò)遞歸方式編寫通用函數(shù)自動(dòng)生成連續(xù)數(shù)字和日期
- SqlServer使用公用表表達(dá)式(CTE)實(shí)現(xiàn)無(wú)限級(jí)樹(shù)形構(gòu)建
- SQL Server 公用表表達(dá)式(CTE)實(shí)現(xiàn)遞歸的方法
- 使用SqlServer CTE遞歸查詢處理樹(shù)、圖和層次結(jié)構(gòu)
- 在sqlserver中如何使用CTE解決復(fù)雜查詢問(wèn)題
- SQL SERVER 2008 CTE生成結(jié)點(diǎn)的FullPath
- SQLSERVER2008中CTE的Split與CLR的性能比較
- SQL?Server使用T-SQL進(jìn)階之公用表表達(dá)式(CTE)
相關(guān)文章
SQLServer無(wú)法打開(kāi)用戶默認(rèn)數(shù)據(jù)庫(kù) 登錄失敗錯(cuò)誤4064的解決方法
這篇文章主要介紹了SQLServer無(wú)法打開(kāi)用戶默認(rèn)數(shù)據(jù)庫(kù) 登錄失敗錯(cuò)誤4064的解決方法,需要的朋友可以參考下2015-01-01SqlServer 2005 T-SQL Query 學(xué)習(xí)筆記(3)
利用ROW_NUMBER()進(jìn)行高效率的分頁(yè)。2010-02-02配置 SQLServer2005 以允許遠(yuǎn)程連接
為 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 啟用遠(yuǎn)程連接/2009-11-11Win2008中安裝的MSSQL2005后無(wú)法訪問(wèn)的解決方法
最近筆者一直在使用Win2008系統(tǒng),不過(guò)發(fā)現(xiàn)一個(gè)很奇怪的問(wèn)題,那就是在該系統(tǒng)上安裝了SQL2005后,再在其他計(jì)算機(jī)訪問(wèn)該主機(jī)顯示不能訪問(wèn)2014-07-07SQL server 2005將遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入到本地的方法
這篇文章主要介紹了SQL server 2005將遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)入到本地的方法,需要的朋友可以參考下2015-01-01SQL Server中的XML數(shù)據(jù)進(jìn)行insert、update、delete
SQL Server 2005/2008增加了對(duì)XML數(shù)據(jù)的支持,同時(shí)也新增了幾種操作XML的方法,本文主要以SQL Server 2008為例介紹如何對(duì)XML數(shù)據(jù)進(jìn)行insert、update、delete。2009-07-07SQL Server 數(shù)據(jù)庫(kù)清除日志的方法
SQLSERVER的數(shù)據(jù)庫(kù)日志占用很大的空間,下面提供三種方法用于清除無(wú)用的數(shù)據(jù)庫(kù)日志文件2012-07-07Sql server2005 優(yōu)化查詢速度50個(gè)方法小結(jié)
Sql server2005優(yōu)化查詢速度51法查詢速度慢的原因很多,常見(jiàn)如下幾種,大家可以參考下。2009-10-10