国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL SERVER 2008 CTE生成結點的FullPath

2024-08-31 01:00:53
字體:
來源:轉載
供稿:網友
好的,現在來看如何生成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 也能很好的解決這個問題。我將在后面寫一些關于HierarchyType的Post.

希望這篇POST對您有幫助。

Author Peter Liu
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖边县| 长岭县| 平罗县| 柳河县| 乐至县| 克山县| 常州市| 华阴市| 镇原县| 龙口市| 平和县| 广宗县| 南召县| 莎车县| 黄平县| 汾阳市| 三明市| 张北县| 土默特右旗| 银川市| 柳河县| 三原县| 通河县| 栾川县| 深圳市| 虹口区| 丰原市| 互助| 颍上县| 视频| 营口市| 嘉鱼县| 阿尔山市| 大荔县| 桃园县| 屯昌县| 北辰区| 昭平县| 河西区| 虹口区| 晋江市|