IF OBJECT_ID('[ta]'IS NOT NULL 
    DROP TABLE [ta]
Go
CREATE TABLE ta([id] INT,[name] NVARCHAR(4),[parentid] NVARCHAR(2))
Go
INSERT INTO ta
   SELECT 1,'河北省','0' UNION ALL
   SELECT 2,'邢台市','1' UNION ALL
   SELECT 3,'石家庄市','1' UNION ALL
   SELECT 4,'张家口市','1' UNION ALL
   SELECT 5,'南宫','2' UNION ALL
   SELECT 6,'坝上','4' UNION ALL
   SELECT 7,'任县','2' UNION ALL
   SELECT 8,'清河','2' UNION ALL
   SELECT 9,'河南省','0' UNION ALL
   SELECT 10,'新乡市','9' UNION ALL
   SELECT 11,'aaa','10' UNION ALL
   SELECT 12,'bbb','10' 
GO
--Start
;with district
as
select from ta where [name]=N'河北省' 
 union all 
 select a.* from ta a,district b where a.parentid=b.id 
)
select from district
  
--Result:
/*
id          name parentid
----------- ---- --------
1           河北省  0
2           邢台市  1
3           石家庄市 1
4           张家口市 1
6           坝上   4
5           南宫   2
7           任县   2
8           清河   2
  
*/
 
上面代码可以还不够清晰 给多一个例子
 

WITH district
--查询列
(PID, FDepartmentName,FState, FFatherName) AS

--父表
(SELECT  PID, FDepartmentName,FState,CONVERT(nvarchar(50), '') AS FFatherName FROM dbo.T_Department WHERE   (FParentUserID IS NULL or FParentUserID=0)
UNION ALL
--子表(注意是b的FDepartmentName)
SELECT a.PID, a.FDepartmentName,a.FState,b.FDepartmentName AS FFatherName FROM dbo.T_Department AS a

--关系
INNER JOIN district AS b ON a.FParentUserID = b.PID)

--查询
SELECT   PID, FDepartmentName,FState, FFatherName
FROM      district AS c

数据库递归查询(CET)的更多相关文章

  1. 数据库递归查询-CTE

    1.公用表表达式(CTE)的定义 公用表达式的定义包含三部分: 公用表表达式的名字(在WITH之后) 所涉及的列名(可选) 一个SELECT语句(紧跟AS之后), 公用表表达式的好处之一是可以在接下来 ...

  2. 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0

    作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...

  3. JSP应用开发 -------- 电纸书(未完待续)

    http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术   第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...

  4. Sql Server 2008R2中使用CET进行递归查询

            在使用数据库的过程中,我们经常会遇到递归的查询.比如传入一个分类ID,要查出这个分类下的所有子分类,以及子分类的子分类.或者说传入一个部门ID,要查出这个部门下所有子部门的人员:在Or ...

  5. c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询

    天气预报的程序.程序并不难. 看到这个需求第一个想法就是只要找到合适天气预报接口一切都是小意思,说干就干,立马跟学生沟通价格. ​ ​不过谈报价的过程中,差点没让我一口老血喷键盘上,话说我们程序猿的人 ...

  6. 关于SQL递归查询在不同数据库中的实现方法

    比如表结构数据如下: Table:Tree ID Name ParentId 1 一级  0 2  二级 1 3  三级 2 4 四级 3 SQL SERVER 2005查询方法: //上查 with ...

  7. C# 使用Linq递归查询数据库遇到的问题及解决方法

    User表通常是我们在写"XX管理系统"项目时必须要用到的,有的情况下人员的分类属于树形结构,就是除了最高层和最低层,中间层都有相对的父和子,设计数据库的时候,我们通常会加一个pa ...

  8. 使用Oracle数据库实现树形结构表的子-父级递归查询和删除,通过级联菜单简单举例

    前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNEC ...

  9. SqlServer:SqlServer(数据库备份,数据文件迁移,增加数据库文件组,递归查询一周报送情况,查询近X天未报送单位,截断数据库日志,复制单个或多个数据库表到另一个数据库 )

    1.数据备份 ) ) ) )),'-','') ) SET @savePath = 'f:/DatabaseBackup/' DECLARE My_Cursor CURSOR FOR ( select ...

随机推荐

  1. Python requests 报错解决集锦

    python版本号和ssl版本号都会导致 requests在请求https站点时候会出一些错误,最好使用新版本号. 1 Python2.6x use requests 一台老Centos机器上跑着古老 ...

  2. MFC获得主窗体和父窗体指针

    MFC编程中经常遇到子窗体向父窗体传递參数的情况,这就须要获得父窗体的指针. 例:主对话框CMyMainDlg通过buttonButtonA进入对话框CMyParentDlg.CMyParentDlg ...

  3. 无法加载Dll”ArcGISVersion.dll”:0x8007007E

    在Win7x64位环境下,无法加载Dll"ArcGISVersion.dll":找不到指定的模块 解决方案: 打开项目的属性-生成-常规-目标平台,选择X86. 参考:http:/ ...

  4. 菜鸟从零学编程——GET与POST

    相信大家在面试的时候经常会被问到:GET与POST有什么区别吧?你是怎么回答的呢?POST比GEt安全?GET有URL的长度限制而POST没有或者很大?GET通过URL或者Cookie传参数,POST ...

  5. 微信小程序 - 选取搜索地点并且显示(map)

    演示如下,使用时,你也许会配合它:腾讯地图路线规划 wxml: <view class='address' bindtap='onChangeAddress'> <input cla ...

  6. SlidingMenu(一)

    我们一般称之为侧边栏,今天下倒腾了一下,留点笔记... 源码来自:https://github.com/jfeinstein10/SlidingMenu 来张图把: 代码API注释看看这个吧 http ...

  7. sql删除数据库所有表

    use 数据库名(是要删除表的所在的那个数据库的名称) GO ) begin SELECT @sql='drop table ' + name FROM sysobjects WHERE (type ...

  8. oracle 查看锁表情况与解表

      oracle 查看锁表情况与解表 CreateTime--2018年4月27日17:24:37 Author:Marydon 1.锁表查询 --锁表查询 SELECT OBJECT_NAME AS ...

  9. Redhat 5禁止IPv6

    Redhat  5禁止IPv6 IPv6还没有全然普及,可是安装完系统之后IPv6是有效的,在一定程度上影响网络性能,所以在我们在全然不使用IPv6的情况下.最好关闭IPv6.如今我们就在本文以完整的 ...

  10. 搭建web项目结合spring+cxf的webservice服务

    服务端: 服务端和客户端都需要引入包 antlr-2.7.7.jar aopalliance-1.0.jar asm-3.3.jar commons-collections-3.2.1.jar com ...