cte递归的小例子

/*
   --王红波
描述:使用通用表达式实现递归查询
查询id=2的所有子节点
*/
if   exists ( select   1   from  sys.tables  where  name  =   ' test ' )
    
drop   table  test

create   table  test(id  int  ,parent_id  int )
insert   into  test 
select   1 , 0
union   all
select   2 , 1
union   all
select   3 , 1
union   all
select   4 , 1

union   all
select   20 , 2
union   all
select   21 , 2

union   all
select   30 , 3
union   all
select   31 , 3
union   all
select   32 , 3

select   *   from  test
;
with  sun(id)  as  
(
select  id  from  test  where  id  =   1   --
union   all  
select  a.id  from  test a 
    
inner   join  sun b 
    
on  a.parent_id  =  b.id 
)

select   *   from  sun  order   by  id 

drop   table  test



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值