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

最新文章

  1. hadoop 2.4 遇到的问题
  2. java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet
  3. UVa 1354 天平难题 Mobile Computing
  4. android wifi obtainmessage sendmessage解析
  5. 【转载】Linux之gdb
  6. KISSY学习笔记(更新中)
  7. wormhole提升hivereader读取速度方案
  8. Linux服务器建站基础-选择何种配置和安装环境项目
  9. Python之路: 面向对象
  10. asp.net core系列 45 Web应用 模型绑定和验证
  11. javascript的数组之includes()
  12. sed命令替换文件的内容【学习笔记】
  13. 软工作业PSP与单元测试训练:java语言判断电子邮箱格式
  14. C#泛型。
  15. [TJOI2017]城市
  16. postman接口测试基础知识
  17. 让div固定在顶部不随滚动条滚动【转】
  18. caffe中的caffemodel参数提取方法
  19. opencv:基于颜色空间的肤色检测方法
  20. Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar

热门文章

  1. 如何用 js 递归输出树型
  2. Maven项目结合POI导出Excl表格Demo-亲测可用
  3. 一个完整的C++程序SpreadSheet - 1) 类的声明和定义
  4. linux嵌入式系统交叉开发环境
  5. GCC高级测试功能扩展——程序性能测试工具gprof、程序覆盖测试工具gcov
  6. SQL语言基本操作(聚合函数)
  7. it-tidalwave-semantic-aux-1.0.13.jar下载
  8. Python set特点
  9. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 SharePoint 管理中心
  10. Android程序完全退出