首页 > 数据库技术 > 详细

SQL CTE 递归 查询省,市,区

时间:2014-06-28 17:55:46      阅读:453      评论:0      收藏:0      [点我收藏+]
 IF OBJECT_ID(tb) 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 , 松岗镇)
GO
SELECT * FROM tb AS t

DECLARE @ID VARCHAR(3) 
--查询ID = ‘001‘的所有子节点
SET @ID = 007
;WITH Temp AS (
  SELECT id,pid,NAME FROM tb AS t WHERE t.id=@ID
  UNION ALL
  SELECT t2.id,t2.pid,t2.NAME FROM tb t2 INNER JOIN Temp tm on t2.pid=tm.ID
)
SELECT * FROM Temp AS t WHERE id!=@ID

 

SQL CTE 递归 查询省,市,区,布布扣,bubuko.com

SQL CTE 递归 查询省,市,区

原文:http://www.cnblogs.com/gguozhenqian/p/3797222.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!