树形结构取得所有子父结点函数

/*取得子结点*/

create function fn_getSon(@parentid int)
returns @temptab table(id int,level int)
as
begin
 declare @level int
 set @level=1
 insert into @temptab(id,level) values(@parentId,@level)
 while @@rowcount>0
 begin
  SET @Level=@Level+1
  INSERT @temptab SELECT a.id,@Level
  FROM organise a,@temptab b
  WHERE a.parentId=b.id
       AND b.Level=@Level-1
 end
  

 return
end

go

/*取得父结点*/

create function fn_getPar(@sonid int)
returns @temptab table(id int,level int)
as
begin
 declare @level int
 set @level=1
 insert into @temptab(id,level) values(@sonId,@level)
 while @@rowcount>0
 begin
  SET @Level=@Level+1
  INSERT @temptab SELECT a.parentid,@Level
  FROM organise a,@temptab b
  WHERE a.Id=b.id
       AND b.Level=@Level-1
 end
  

 return
end


go

declare @ta table(单位ID int,  单位名称 varchar(5), ParentID int)
insert @ta select 1,        'AAA',         0
insert @ta select 2,        'BBB',         1
insert @ta select 3,        'CCC',         1
insert @ta select 4,        'DDD',         1
insert @ta select 5,        'EEE',         2
insert @ta select 6,        'EEE',         5
select space(parentid*5)+单位名称 from @ta

go

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值