sql server 递归查询

时间:2019-05-31 18:03:58   收藏:0   阅读:106
Create Table #ss( F1 int , F2 int , F3 char( 20 ) )
Declare @ss int , @ss1 int
set @ss = 1
insert #ss( F2 , F3 ) Values( @ss , 教育局 )
insert #ss( F1 , F2 , F3 ) Values( @ss , 2 , 市一高 )

set @ss1 = 3
insert #ss( F1 , F2 , F3 ) Values( @ss , @ss1 , 开发区 )
insert #ss( F1 , F2 , F3 ) Values( @ss1 , 4 , 开发区1 )
set @ss1 = 5
insert #ss( F1 , F2 , F3 ) Values( @ss , @ss1 , ××区 )
insert #ss( F1 , F2 , F3 ) Values( @ss1 , 6 , ××区一小 )
insert #ss( F1 , F2 , F3 ) Values( @ss1 , 7 , ××区一中 )
insert #ss( F1 , F2 , F3 ) Values( @ss1 , 8 , ××区二小 )
set @ss1 = 9
insert #ss( F1 , F2 , F3 ) Values( @ss , @ss1 , ××县 )
insert #ss( F1 , F2 , F3 ) Values( @ss1 , 10 , ××镇 )
set @ss = 11
insert #ss( F1 , F2 , F3 ) Values( @ss1 , @ss , ××乡 )
insert #ss( F1 , F2 , F3 ) Values( @ss , 12 , ××乡一小 )
insert #ss( F1 , F2 , F3 ) Values( @ss , 13 , ××乡二小 )


--需要查询某一个单位的所有子单位
--比如查询“××县”,要查到××镇、××乡、××乡一小、××乡二小
declare @cx int
set @cx=1
if 1=1
with a as(
select * from #ss where f2=@cx
union all
select b.* from #ss b join a on b.f1=a.f2)
select * from a

 

 

 

原文:https://www.cnblogs.com/zzchao/p/10956553.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!