数据库递归查询(CET)
2024-08-20 06:41:02
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
最新文章
- hadoop 2.4 遇到的问题
- java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet
- UVa 1354 天平难题 Mobile Computing
- android wifi obtainmessage sendmessage解析
- 【转载】Linux之gdb
- KISSY学习笔记(更新中)
- wormhole提升hivereader读取速度方案
- Linux服务器建站基础-选择何种配置和安装环境项目
- Python之路: 面向对象
- asp.net core系列 45 Web应用 模型绑定和验证
- javascript的数组之includes()
- sed命令替换文件的内容【学习笔记】
- 软工作业PSP与单元测试训练:java语言判断电子邮箱格式
- C#泛型。
- [TJOI2017]城市
- postman接口测试基础知识
- 让div固定在顶部不随滚动条滚动【转】
- caffe中的caffemodel参数提取方法
- opencv:基于颜色空间的肤色检测方法
- Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar
热门文章
- 如何用 js 递归输出树型
- Maven项目结合POI导出Excl表格Demo-亲测可用
- 一个完整的C++程序SpreadSheet - 1) 类的声明和定义
- linux嵌入式系统交叉开发环境
- GCC高级测试功能扩展——程序性能测试工具gprof、程序覆盖测试工具gcov
- SQL语言基本操作(聚合函数)
- it-tidalwave-semantic-aux-1.0.13.jar下载
- Python set特点
- BEGINNING SHAREPOINT&;#174; 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 SharePoint 管理中心
- Android程序完全退出