码迷,mamicode.com
首页 > 数据库 > 详细

SQL SERVER 进行递归查询

时间:2014-09-09 12:25:38      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   使用   ar   数据   div   

有如下数据表

 

bubuko.com,布布扣

 

假如我们要查询ID为003的数据的所有子节点我们可以使用CTE 递归查询完成...

 

if OBJECT_ID(tb,N) is not null
 drop table tb;


create table tb(id varchar(3) , pid varchar(3) , name varchar(10));
insert into tb values(001 , null , 广东省);
insert into tb values(002 , 001 , 广州市); 
insert into tb values(003 , 001 , 深圳市) ;
insert into tb values(004 , 002 , 天河区) ;
insert into tb values(005 , 003 , 罗湖区);
insert into tb values(006 , 003 , 福田区) ;
insert into tb values(007 , 003 , 宝安区) ;
insert into tb values(008 , 007 , 西乡镇) ;
insert into tb values(009 , 007 , 龙华镇);
insert into tb values(010 , 007 , 松岗镇);

select * from tb;

 with cte as
 (
 select a.id,a.name,a.pid from tb a where id=003
 union all 
 select k.id,k.name,k.pid  from tb k inner join cte c on c.id = k.pid
 )select * from cte
 

查询结果如下:
003 深圳市 001
005 罗湖区 003
006 福田区 003
007 宝安区 003
008 西乡镇 007
009 龙华镇 007
010 松岗镇 007

 

SQL SERVER 进行递归查询

标签:style   blog   http   color   io   使用   ar   数据   div   

原文地址:http://www.cnblogs.com/chengchuang/p/3962104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!