我想在上面的答案中指出的第一件事,如果使用的行號,如果表中有重複的記錄將不會工作。您將不得不最終使用不同的上述查詢將不會產生正確的結果。
有很多方法可以實現相同的功能。如果你只需要找到的最高薪水,那麼你可以使用
Select Max(Salary) from Employees
SQL查詢中使用子查詢
Select Max(Salary) from Employees where Salary < (Select Max(Salary) from Employees)
SQL查詢來查找在僱員表中第二高的薪水找到第n個薪水最高的員工使用子查詢使用
SELECT TOP 1 SALARY
FROM (
SELECT DISTINCT TOP N SALARY
FROM EMPLOYEES
ORDER BY SALARY DESC
) RESULT
ORDER BY SALARY
// Replace the N with the highest number which you need to find.
SQL查詢表中查找在僱員表中第n個薪水最高使用CTE
WITH RESULT AS
(
SELECT SALARY,
DENSE_RANK() OVER (ORDER BY SALARY DESC) AS DENSERANK
FROM EMPLOYEES
)
SELECT TOP 1 SALARY
FROM RESULT
WHERE DENSERANK = N
來取得第三個薪水最高的員工表
WITH RESULT AS
(
SELECT SALARY,EmpName,
DENSE_RANK() OVER (ORDER BY SALARY DESC) AS DENSERANK
FROM EMPLOYEES
)
SELECT TOP 1 SALARY,EmpName
FROM RESULT
WHERE DENSERANK = 3
你可以找到差不多的更多的細節在我的博客How to find nth highest salary using SQL query