我们平常使用递归的方式有多种,其中sql语句编写是很普遍高效的一种,下面分享一种自己平常使用的cte递归查询语句,话不多说,上干货!
WITH RECURSIVE cte ( ID, level, parent) AS(
SELECT DISTINCT de.id, 1 AS level, parentid FROM departmentinfo de WHERE de.parentid is null
UNION ALL
SELECT d1.id, level + 1, a.id FROM departmentinfo d1, cte a WHERE a.id = d1.parentid
)
SELECT cte.id,cte.level,parent FROM cte
下面为结果实例:
|
ID |
level |
parent |
|
176878 |
1 |
null |
|
254356 |
2 |
176878 |
|
367644 |
2 |
176878 |
|
456768 |
3 |
254356 |
|
543665 |
3 |
254356 |

本文介绍了如何使用SQL中的Common Table Expression (CTE)进行递归查询,以展示部门信息的层级结构。通过一个具体的CTE查询示例,展示了如何从根节点开始遍历所有子部门,揭示了CTE在组织结构查询中的高效性。
5111

被折叠的 条评论
为什么被折叠?



