首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

简单的sql有关问题,有答案的直接给分

2012-05-23 
简单的sql问题,在线等,有答案的直接给分!有如下表 A:IdParent_id1null21314253请写出一个算法得到如下结果

简单的sql问题,在线等,有答案的直接给分!
有如下表 A:

Id Parent_id
1 null
2 1
3 1
4 2
5 3

请写出一个算法得到如下结果(顺序要一致)
Id Path
1 /
2 /2/
4 /2/4/
3 /3/
5 /3/5/


[解决办法]
CTE递归 有请楼下。
[解决办法]

SQL code
DECLARE @tab TABLE (Id INT, Parent_id INT)INSERT INTO @tabSELECT 1, NULL UNION ALL SELECT 2, 1 UNION ALLSELECT 3, 1 UNION ALLSELECT 4, 2 UNION ALLSELECT 5, 3;with cte AS (    SELECT Id,[PATH]=CAST('/' AS VARCHAR),Parent_id FROM @tab WHERE Parent_id IS NULL    UNION ALL    SELECT a.Id,[PATH]=CAST(c.[PATH]+CAST(a.Id AS VARCHAR)+'/' AS VARCHAR),            a.Parent_id FROM @tab a JOIN  cte c ON a.Parent_id=c.Id)SELECT id,PATH FROM cte ORDER BY id --test:/*id          PATH----------- ------------------------------1           /2           /2/3           /3/4           /2/4/5           /3/5/(5 行受影响)*/ 

热点排行
Bad Request.