⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

递归公共表表达式:生成组织架构树的深度查询

揭示 CTE 递归原理,用于查询树形结构的父子层级数据,适合血缘关系、分类树、报表展开等场景。 · 难度:入门 · +10XP

递归公共表表达式:生成组织架构树的深度查询

许多开发者把 CTE 当成临时视图,却忽略了 RECURSIVE 关键字才是处理树形关系的利器。本教程以企业组织架构为例,用递归 CTE 从根节点出发层层向下遍历,返回每个员工的完整路径、层级深度以及祖先后代关系。你将理解锚点成员(Anchor Member)与递归成员(Recursive Member)如何通过 UNION ALL 循环拼接结果集,以及如何用控制条件避免无限递归。

WITH RECURSIVE org_tree AS (
  -- 锚点:顶级管理者
  SELECT employee_id, name, manager_id, 1 AS level,
         CAST(name AS VARCHAR(100)) AS path
  FROM employees WHERE manager_id IS NULL
  UNION ALL
  -- 递归:连接下属
  SELECT e.employee_id, e.name, e.manager_id, t.level + 1,
         CAST(t.path || ' -> ' || e.name AS VARCHAR(100))
  FROM employees e
  INNER JOIN org_tree t ON t.employee_id = e.manager_id
)
SELECT * FROM org_tree ORDER BY path;
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 146 篇
0 完成
🔥 0