SQL 递归
1
select * from system_part order by id
2
exec selpart
3
create proc selpart
4
as
5
begin
6
declare @id int
7
declare @level int
8
declare @t table(id int,[level] int)
9
set @id=382
10
set @level=1
11
insert into @t values (@id,@level)
12
while @@rowcount>0
13
begin
14
set @level=@level+1
15
insert into @t
16
select a.id,@level
17
from system_part as a
18
join @t as b on a.parentid=b.id where b.[level]=@level-1
19
20
end
21
select * from system_part where id in (select id from @t)
22
end
select * from system_part order by id2
exec selpart3
create proc selpart 4
as5
begin6
declare @id int7
declare @level int8
declare @t table(id int,[level] int)9
set @id=38210
set @level=111
insert into @t values (@id,@level)12
while @@rowcount>0 13
begin14
set @level=@level+115
insert into @t 16
select a.id,@level 17
from system_part as a 18
join @t as b on a.parentid=b.id where b.[level]=@level-119
20
end21
select * from system_part where id in (select id from @t)22
end如上~~~
浙公网安备 33010602011771号