【发布时间】:2020-05-04 03:00:01
【问题描述】:
我有一个关于 sql 递归理论的问题。
定义:如果一个公用表表达式在其定义中使用了自己,这称为递归。
FedEmp(name, salary, manager)
查找Hoover管理下的所有工资在100000以上的员工
with agents(name, salary) as
((select name, salary --initial query
from FedEmp
where manager = ‘Hoover’)
union all
(select f.name, f.salary --recursive query
from agents as a, FedEmp As f
where f.manager = a.name))
select name from agents; --final query
【问题讨论】:
-
你的问题是什么?
-
我想知道,是 sql recursive mush 与 union all 一起使用吗,我不知道这是修复格式还是我不能以其他方式使用它
-
今日提示:切换到现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),如果需要更容易转换为外连接 -
提示 2:UNION ALL 时不要将 SELECT 放在括号内。
-
但是,我不知道如何使用外连接查找所有工资超过 100000 的员工
标签: sql tsql common-table-expression recursive-query