[SQL] 生成无级树--处理示例
[SQL] 生成无级树

[SQL] 生成无级树
--示例数据
[SQL] 生成无级树
create table tb(ID int,Name varchar(10),ParentID int)
[SQL] 生成无级树
insert tb select 1,'AAAA'    ,0
[SQL] 生成无级树
union all select 2,'BBBB'    ,0
[SQL] 生成无级树
union all select 3,'CCCC'    ,0
[SQL] 生成无级树
union all select 4,'AAAA-1'  ,1
[SQL] 生成无级树
union all select 5,'AAAA-2'  ,1
[SQL] 生成无级树
union all select 6,'BBBB-1'  ,2
[SQL] 生成无级树
union all select 7,'CCCC-1'  ,3
[SQL] 生成无级树
union all select 8,'CCCC-2'  ,3
[SQL] 生成无级树
union all select 9,'AAAA-1-1',4
[SQL] 生成无级树
go
[SQL] 生成无级树
[SQL] 生成无级树
--创建处理的函数
[SQL] 生成无级树
create function f_id()
[SQL] 生成无级树
returns @re table(id int,level int,sid varchar(8000))
[SQL] 生成无级树
as
[SQL] 生成无级树
begin
[SQL] 生成无级树    
declare @l int
[SQL] 生成无级树    
set @l=0
[SQL] 生成无级树    
insert @re select id,@l,right(10000+id,4)
[SQL] 生成无级树    
from tb where ParentID=0
[SQL] 生成无级树    
while @@rowcount>0
[SQL] 生成无级树    
begin
[SQL] 生成无级树        
set @l=@l+1
[SQL] 生成无级树        
insert @re select a.id,@l,b.sid+','+right(10000+a.id,4)
[SQL] 生成无级树        
from tb a,@re b
[SQL] 生成无级树        
where a.ParentID=b.id and b.level=@l-1
[SQL] 生成无级树    
end
[SQL] 生成无级树    
return
[SQL] 生成无级树
end
[SQL] 生成无级树
go
[SQL] 生成无级树
[SQL] 生成无级树
--调用函数实现查询
[SQL] 生成无级树
select a.*,带缩进的Name=space(b.level*4)+a.Name
[SQL] 生成无级树
from tb a,f_id() b
[SQL] 生成无级树
where a.id=b.id
[SQL] 生成无级树
order by b.sid
[SQL] 生成无级树
go
[SQL] 生成无级树
[SQL] 生成无级树
--删除测试
[SQL] 生成无级树
drop table tb
[SQL] 生成无级树
drop function f_id

相关文章:

  • 2022-12-23
  • 2021-08-28
  • 2021-10-11
  • 2022-12-23
  • 2021-09-10
  • 2021-08-25
  • 2021-05-08
  • 2022-12-23
猜你喜欢
  • 2021-11-22
  • 2021-04-30
  • 2022-12-23
  • 2021-07-16
  • 2022-12-23
  • 2021-06-25
  • 2021-08-07
相关资源
相似解决方案