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('' , null , '广东省')
insert into tb values('' , '' , '广州市')
insert into tb values('' , '' , '深圳市')
insert into tb values('' , '' , '天河区')
insert into tb values('' , '' , '罗湖区')
insert into tb values('' , '' , '福田区')
insert into tb values('' , '' , '宝安区')
insert into tb values('' , '' , '西乡镇')
insert into tb values('' , '' , '龙华镇')
insert into tb values('' , '' , '松岗镇')
GO
SELECT * FROM tb AS t DECLARE @ID VARCHAR(3)
--查询ID = '001'的所有子节点
SET @ID = ''
;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 递归 查询省,市,区的更多相关文章

  1. sql with 递归 查询特定区间日期

    declare @startDay smalldatetime ='2013-01-01'  ;with cte as(     select @startDay as d    union all  ...

  2. SQL CTE递归

    WITH cte_name AS ( --Anchor member is defined ' UNION ALL --Recursive member is defined referencing ...

  3. SQL CTE 递归分割以逗号分隔的字符串

    )) INSERT INTO @t SELECT 'AAA,BBB,CCC' SELECT * FROM @t ;WITH mycte AS ( ,mend,num FROM @t UNION ALL ...

  4. SQL With (递归CTE查询)

    指定临时命名的结果集,这些结果集称为公用表表达式 (CTE).该表达式源自简单查询,并且在单条 SELECT.INSERT.UPDATE 或 DELETE 语句的执行范围内定义.该子句也可用在 CRE ...

  5. SQL 递归查询,意淫CTE递归的执行步骤

    今天用到了sql的递归查询.递归查询是CTE语句with xx as(....)实现的. 假如表Category数据如下. 我们想查找机枪这个子分类极其层次关系(通过子节点,查询所有层级节点).以下是 ...

  6. SQL Server中公用表表达式 CTE 递归的生成帮助数据,以及递归的典型应用

    本文出处:http://www.cnblogs.com/wy123/p/5960825.html 我们在做开发的时候,有时候会需要一些帮助数据,必须需要连续的数字,连续间隔的时间点,连续的季度日期等等 ...

  7. TSql CTE 递归原理探究

    CTE是如何进行递归的?产生递归的条件有三个,分别是 初始值 自身调用自身 结束递归的条件 1,示例代码 ;with cte as ( as jd union all as jd from cte ) ...

  8. 8第八章CTE递归及分组汇总高级部分(多维数据集)(转载)

    8第八章CTE递归及分组汇总高级部分(多维数据集) 这里贴图太麻烦...算了 UNION 等集合操作符: UNION 等以第一个 SELECT  的 列明 作为 整个结果集的列明,整个结果集 唯一认可 ...

  9. 第八章 CTE 递归 及 分组汇总 高级部分(多维数据集)

    UNION 等集合操作符: UNION 等以第一个 SELECT  的 列明 作为 整个结果集的列明,整个结果集 唯一认可的 唯一逻辑处理阶段 是 ORDER BY  这个意思是说 只有 ORDER ...

随机推荐

  1. 最终还是选择了markdownpad2

    markdownpad2使用 最终 哈哈,最后还是选择了markdownpad2,经过探索才知道这个玩意多么好用. 点击,下载. 碰到的问题 1.win10出现HTML无法渲染得对话框 结果是,官网有 ...

  2. MyBatis的高级映射之多对一

    使用传统方式的形式 使用MyBatis的方式 这样会产生两条语句 使用ResultMap的方式,对结果进行映射和转换,自己控制 两条语句变成一条语句,然后进行映射,这时Student类中包含一个 Cl ...

  3. (转)SC命令---安装、开启、配置、关闭windows服务 bat批处理

    本文转载自:http://blog.csdn.net/moruna/article/details/9190733 废话不多说,看命令行更直接! 一.直接使用cmd来进行服务的一些操作 1.安装服务 ...

  4. [转】LTE整体架构和协议架构概述

    1.1 LTE整体架构 LTE(Long Term Evolution,长期演进)是由3GPP(The 3rd Generation Partnership Project,第三代合作伙伴计划)组织制 ...

  5. 西安电子科技大学第16届程序设计竞赛 G-小国的复仇

    西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇 2 链接:https://www.nowcoder.com/acm/contest/107/G来源:牛客网 题目描述 众所周知,汀老师是 ...

  6. Oracle data guard学习

    Oracle data guard学习:三思笔记 Data guard 1data guard结构: data guard是一个集合,由一个primary数据库(生产数据库)和一个或多个standby ...

  7. Oracle RMAN 学习:恢复

    Oracle RMAN 学习:恢复 6 rman恢复 Rman中的恢复对应restore,recover Restore,数据修复,利用备份集的数据文件来替换已损坏的数据文件或将其恢复到另外一个位置, ...

  8. Python 下载图片的几种方法

    import osos.makedirs('./image/', exist_ok=True)IMAGE_URL = "http://image.nationalgeographic.com ...

  9. wpf数据验证实例及常用方法小结

    虽然标题是wpf数据验证,但并不是对IDataErrorInfo.ValidationRule.属性中throw Exception这几种验证方式的介绍: 之前做项目时(例如员工工资管理),根据员工编 ...

  10. Windows_Server_2008远程桌面多用户登陆的配置方法

    开启远程桌面后,Windows Vista(或Windows 2008)下默认只支持一个administrator用户登陆,一个登录后另一个就被踢掉了,下面提供允许同一个用户名同时多个用户登录的配置方 ...