SQL 语句递归查询 With AS 查找所有子节点
create table #EnterPrise
(
Department nvarchar(50),--部门名称
ParentDept nvarchar(50),--上级部门
DepartManage nvarchar(30)--部门经理
)
insert into #EnterPrise select '技术部','总经办','Tom'
insert into #EnterPrise select '商务部','总经办','Jeffry'
insert into #EnterPrise select '商务一部','商务部','ViVi'
insert into #EnterPrise select '商务二部','商务部','Peter'
insert into #EnterPrise select '程序组','技术部','GiGi'
insert into #EnterPrise select '设计组','技术部','yoyo'
insert into #EnterPrise select '专项组','程序组','Yue'
insert into #EnterPrise select '总经办','','Boss'
--查询部门经理是Tom的下面的部门名称
;with hgo as
(
select *,0 as rank from #EnterPrise where DepartManage='Tom'
union all
select h.*,h1.rank+1 from #EnterPrise h join hgo h1 on h.ParentDept=h1.Department
)
select * from hgo
/*
Department ParentDept DepartManage rank
--------------- -------------------- ----------------------- -----------
技术部 总经办 Tom 0
程序组 技术部 GiGi 1
设计组 技术部 yoyo 1
专项组 程序组 Yue 2
*/
--查询部门经理是GiGi的上级部门名称
;with hgo as
(
select *,0 as rank from #EnterPrise where DepartManage='GiGi'
union all
select h.*,h1.rank+1 from #EnterPrise h join hgo h1 on h.Department=h1.ParentDept
)
select * from hgo
/*
Department ParentDept DepartManage rank
-------------------- ---------------------- ----------- -----------
程序组 技术部 GiGi 0
技术部 总经办 Tom 1
总经办 Boss 2
*/
如果递归次数大于100,只需在与cte连接的sql 语句的最后加上option (maxrecursion 0) 即可.默认递归
次数为100,设为0表示没有次数限制.
相关文章
- TreeView节点
- HTMLDOM中三种元素节点、属性节点、文本节点的测试案例
- poj 2777(线段树的节点更新策略)
- SQL Server基础Sql语句复习
- 第一百二十六节,JavaScript,XPath操作xml节点
- java.sql.SQLException: The SQL statement must not be null or empty.这个错误
- 【Teradata SQL】数据库中查询 一个字段包含另一个字段sql
- 【学习总结】SQL的学习-2-sql操作
- Qt编写安防视频监控系统8-双击节点
- js操作节点对象-getElementById
- sql server 树状结构表中,获取指定节点的所有父节点路径
- Atitit if else 选择决策流程ast对比 sql java 表达式类型 binaryExpression hase left and rit expr 目录 1.1. Sql1
- Atitit 读取数据库的api orm SQL Builder sql对比 目录 1.1. 提高生产效率的 ORM 和 SQL Builder1 1.2. SQL Builder 在 SQL
- 怎样能写出性能优良的SQL语句 从sql语句提高数据库的性能
- Sql:成功解决将sql输出的datetime时间格式转为常规格式
- AI:人工智能领域之AI发展历史的重要历史时间节点、大牛们对AI相关概念的定义
- 电力系统的延时功率流 (CPF)的计算【 IEEE-14节点】(Matlab代码实现)
- 【K3s】第9篇 详解节点Node
- 【SQL干货】一条sql按季度统计交易数据
- dubbo提供者停止服务后zookeeper注册中心节点仍然存在
- Node.js:insert-sql帮助开发者生成SQL插入语句
- [LeetCode] 19. 删除链表的倒数第N个节点 ☆☆☆
- 在XAML代码中为节点树安装事件监听器
- 彻底解决 K8s 节点本地存储被撑爆的问题
- sql 精读(五) 标准 SQL窗口函数一
- sql 精读(四) 标准 SQL 中聚合分析功能示例
- java 遍历树节点 同时保留所有的从根到叶节点的路径
- ROS学习(六)—— 理解ROS节点
- Oracle PL/SQL中的循环处理(sql for循环)
- Kubernetes Loki收集节点日志