一个表中存放网站栏目.支持无限级分类.即条数据有个parentId字段.用于表示父亲栏目.id parentId name1 0 测试一
2 1 测试一的子栏目
3 0 测试二
4 1 测试一的子栏目二如何在执行Sql后.像下边这样?1 0 测试一
2 1 测试一的子栏目
4 1 测试一的子栏目二
3 0 测试二
我现在都是先用一条sql取出父栏目.然后再用一条sql取出子栏目.有无可行办法.一条搞定?
2 1 测试一的子栏目
3 0 测试二
4 1 测试一的子栏目二如何在执行Sql后.像下边这样?1 0 测试一
2 1 测试一的子栏目
4 1 测试一的子栏目二
3 0 测试二
我现在都是先用一条sql取出父栏目.然后再用一条sql取出子栏目.有无可行办法.一条搞定?
returns @t table(ID varchar(10),ParentID varchar(10),Level int)
as
begin
declare @i int
set @i = 1
insert into @t select @ID,@ID,0 --当前级,本级,如果不要的话可以注释掉或再加个参数来选择操作
insert into @t select ID,ParentID,@i from Dept where ParentID = @ID
while @@rowcount<>0
begin
set @i = @i + 1
insert into @t
select
a.ID,a.ParentID,@i
from
Dept a,@t b
where
a.ParentID=b.ID and b.Level = @i-1
end
return
end