微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sqlserver普通的CTE递归示例--【叶子】

--创建表

declare @T table (ID int,pid int,NAME varchar(6))

insert into @T

select 1,0,'上衣' union all

2,'鞋子 3,'裤子 4,1,'毛衣 5,'衬衫 6,2,'球鞋 7,'皮鞋 8,3,'西裤 9,'筒裤 10,4,'羊毛衣 11,'牛毛衣 12,5,'白衬衫 13,'黑衬衫'

 

@i int

set @i =1 --参数假定为

 

;with

depts as(

 

    select * from @T

    where ID = 1

    union all

    select a.*

    from @T a, depts b

    where a.pid = b.ID

)

 

--取出所有id为1的子项

* from depts

/*

ID          pid         NAME

----------- ----------- ------

1           0           上衣

4           1           毛衣

5           1           衬衫

12          5           白衬衫

13          5           黑衬衫

10          4           羊毛衣

11          4           牛毛衣

*/

 

 

@【叶子】http://blog.csdn.net/maco_wang 原创作品,转贴请注明作者和出处,留此信息。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐