SQL Query查找第N个最高薪水

xor*_*wer 0 sql t-sql sql-server sql-server-2005 sql-server-2008

如何在不使用MS SQL中的任何子查询的情况下找到第N个最高工资?

Mla*_*dic 7

;WITH cte1
AS
(
    SELECT ROW_NUMBER() OVER(ORDER BY SALARY DESC) AS RN, * FROM Salaries
)
SELECT * 
FROM cte1
WHERE RN = 5 <-- Nth highest
Run Code Online (Sandbox Code Playgroud)

  • `ROW_NUMBER()`可能不是这里想要的.`RANK()`或`DENSE_RANK()`可能更合适,具体取决于要求. (2认同)
  • @Xor它取决于你的要求,如果两个人在N点附近有相同的工资,你想看到什么结果? (2认同)