sql递归函数(自定义函数递归查找) 能返回递归的层次

实现效果图如下:

 

创建表:

create table t_tree

(

    id int IDENTITY(1,1),

    parentid int,

    name varchar(10)

)

go

 

插入测试数据:

insert into t_tree select 0,''
insert into t_tree select 1,''
insert into t_tree select 1,''
insert into t_tree select 2,''
insert into t_tree select 3,''
insert into t_tree select 3,''
insert into t_tree select 5,''
insert into t_tree select 5,''
insert into t_tree select 5,''
go

 

创建函数:

create function get_child(@id int)
     returns @child table (id int,parentid int,name varchar(10),level int)
as
     begin
          declare @level int
          set @level=0
          insert into @child  select *,@level from t_tree where id=@id
          while @@rowcount>0
          begin
              set @level=@level+1
              insert into @child  select a.*,@level from t_tree a,@child b  where b.id=a.parentid and b.level=@level-1
          end
          return
     end
go

 

执行:

    select * from get_child(1)

posted @ 2014-03-14 21:47  不再孤单  阅读(750)  评论(0编辑  收藏  举报