SQL SERVER 2008 CTE生成結(jié)點的FullPath
DECLARE @tbl TABLE
(
Id int
,ParentId int
)
INSERT INTO @tbl
( Id, ParentId )
VALUES ( 0, NULL )
, ( 8, 0 )
, ( 12, 8 )
, ( 16, 12 )
, ( 17, 16 )
, ( 18, 17 )
, ( 19, 17 )
WITH abcd
AS (
-- anchor
SELECT id
,ParentID
,CAST(id AS VARCHAR(100)) AS [Path]
FROM @tbl
WHERE ParentId IS NULL
UNION ALL
--recursive member
SELECT t.id
,t.ParentID
,CAST(a.[Path] + ',' + CAST( t.ID AS VARCHAR(100)) AS varchar(100)) AS [Path]
FROM @tbl AS t
JOIN abcd AS a ON t.ParentId = a.id
)
SELECT Id ,ParentID ,[Path]
FROM abcd
WHERE Id NOT IN ( SELECT ParentId
FROM @tbl
WHERE ParentId IS NOT NULL )
返回:
Id ParentID Path
----------- ----------- ----------------------
18 17 0,8,12,16,17,18
19 17 0,8,12,16,17,19
就這么簡單,實際上有Sql server 2008中HierarchyType 也能很好的解決這個問題。我將在后面寫一些關(guān)于HierarchyType的Post.
希望這篇POST對您有幫助。
Author Peter Liu
- sql server使用公用表表達式CTE通過遞歸方式編寫通用函數(shù)自動生成連續(xù)數(shù)字和日期
- SqlServer使用公用表表達式(CTE)實現(xiàn)無限級樹形構(gòu)建
- SQL Server 公用表表達式(CTE)實現(xiàn)遞歸的方法
- 使用SqlServer CTE遞歸查詢處理樹、圖和層次結(jié)構(gòu)
- 在sqlserver中如何使用CTE解決復雜查詢問題
- SQLSERVER2008中CTE的Split與CLR的性能比較
- 使用SQLSERVER 2005/2008 遞歸CTE查詢樹型結(jié)構(gòu)的方法
- SQL?Server使用T-SQL進階之公用表表達式(CTE)
相關(guān)文章
解決SQL SERVER 2008數(shù)據(jù)庫表中修改字段后不能保存
SQL SERVER 2008數(shù)據(jù)庫表中修改字段后不能保存,這種情況將阻止保存要求重新創(chuàng)建表的更改一項的鉤鉤去掉就OK了2013-11-11SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小連續(xù)數(shù)組中
這篇文章主要介紹了SQL Server 2008 R2——查找最小nIndex,nIndex存在而nIndex+1不存在 求最小連續(xù)數(shù)組中的最大值的相關(guān)資料,需要的朋友可以參考下2015-11-11SQL2008 附加數(shù)據(jù)庫提示5120錯誤解決方法
有些朋友在操作sql2008數(shù)據(jù)庫時會提示5120錯誤,本文將介紹詳細的解決方法,有需要的朋友可以參考下2012-12-12Microsoft SQL Server 2008 基本安裝說明
這篇文章主要介紹了Microsoft SQL Server 2008 基本安裝說明 ,需要的朋友可以參考下2015-08-08SQL Server 2008打開輸入sa密碼提示無法登陸數(shù)據(jù)庫的解決方法
與 SQL Server建立連接時出現(xiàn)與網(wǎng)絡相關(guān)的或特定于實例的錯誤,這篇文章主要介紹了SQL Server 2008打開輸入sa密碼提示無法登陸數(shù)據(jù)庫的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07SQL SERVER 2008 R2配置管理器出現(xiàn)“遠程過程調(diào)用失敗”(0x800706be)錯誤提示
本文主要記錄了SQL SERVER 2008 R2配置管理器出現(xiàn)“遠程過程調(diào)用失敗”(0x800706be)錯誤提示的解決方法,圖文并茂,非常的實用,有需要的朋友可以參考下2014-10-10如何在SQL Server 2008下輕松調(diào)試T-SQL語句和存儲過程
sqlserver2008調(diào)試的要求和條件:如果在引擎所在的電腦或服務器上調(diào)試,則只需要SA或者WINDOWS用戶登陸即可。如果是異地調(diào)試,則需要設置防火墻例外,增加SSMS和SQLSERVER.EXE為允許,增加135端口允許通過2013-10-10sqlserver2008查看表記錄或者修改存儲過程出現(xiàn)目錄名無效錯誤解決方法
登陸數(shù)據(jù)庫后,右鍵打開表提示:目錄名無效,執(zhí)行SQL語句也提示有錯誤,現(xiàn)在把解決方法分享給大家2014-01-01