用sql的Function实现递归树

用sql的方法实现递归树 -----MS SQL Server中

tb_city表结构如下
id      name      parentid
1      湖北      0
2      湖南      0
3      武汉      1
4      仙桃      1
5      长沙      2
6      蔡甸      3

定义函数

create function c_tree(@initid int)/*定义函数c_tree,输入参数为初始节点id*/
returns @t table(id int,name varchar(100),parentid int,lev int)/*定义表t用来存放取出的数据*/
begin 
  declare @i int/*标志递归级别*/
  set @i=1
  insert @t select id,name,parentid,@i from tb_city where id=@initid
  while @@rowcount<>0
  begin
  set @i=@i+1
  insert @t select a.id,a.name,a.parentid,@i from tb_city as a,@t as b
 where b.id=a.parentid and b.lev=@i-1
  end
return
end

 

 

执行
使用函数
select * from c_tree(1) /*取湖北下面的子节点*/

 

Oracle中的实现
select *  from TB_CITY
/*此处可写WHERE语句限制*/
start with ID=1
connect by prior ID=PARENTID

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值