【发布时间】:2014-01-02 08:02:14
【问题描述】:
我找到了从网络上查找第 n(th) 个最高薪水的解决方案:
SELECT * FROM Employee Emp1
WHERE (N-1) = (
SELECT COUNT(DISTINCT(Emp2.Salary))
FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary
)
但我无法理解查询实际上是如何执行的,即查询在每个步骤中是如何处理的,尤其是在同一个表出现多个别名的子查询中 ->
WHERE Emp2.Salary > Emp1.Salary
比较运算符用这个做什么-
WHERE (N-1) = <subquery>
有人可以帮我解决吗?
【问题讨论】:
-
在 Mangement Studio 中,
Query下有一个名为Display Estimated Execution Plan或Ctrl-L的选项。让它成为你的朋友来回答这样的问题。 SQL-Server 将显示您必须执行的查询。
标签: mysql sql sql-server