【发布时间】:2017-10-20 13:30:10
【问题描述】:
一张表,Employee 有列 EmployeeID,Salary。 如何找到工资高于平均工资的 EmployeeID?
使用子查询:
SELECT EmployeeID
FROM Employee
WHERE Salary > (SELECT AVG(Salary)
FROM Employee);
是否可以使用连接? 还有其他方法吗?
【问题讨论】:
-
这是可能的,但是在这种情况下,为什么你想要一个没有子查询的查询呢?我在这里感觉到X-Y problem。
-
@TT 因为所有子查询也可以使用连接解决?
-
不,事实并非如此。如果您要重写以使用“某物”进行联接,则该某物将是派生表,它是一个子查询,它在联接子句中代替表。不过,我看不出您为什么要以不同的方式编写它的原因。 IMO 在您的问题中的编写方式是在 SQL 中表达这一点的正确方法。
标签: sql sql-server subquery