Как получить 7-ю по величине зарплату из таблицы в SQL Server?

Я пробовал это:

SELECT max(salary)
FROM emptable
WHERE salary < (SELECT max(salary)
                FROM emptable);
0
Subash B 7 Сен 2016 в 10:35

3 ответа

Лучший ответ
SELECT salary
FROM   (
            SELECT salary
            ,      DENSE_RANK()OVER(ORDER BY salary) DR
            FROM emptable
       ) T
WHERE  T.DR = 7
4
HoneyBadger 7 Сен 2016 в 08:21

Начиная с SQL Server 2012 и новее:

SELECT DISTINCT salary
FROM emptable
ORDER BY salary
OFFSET 6 ROWS
FETCH NEXT 1 ROWS ONLY;
1
Tim Biegeleisen 7 Сен 2016 в 07:43

Вы можете как ниже:

SELECT MAX(salary) 
FROM (SELECT DISTINCT TOP 7 salary FROM emptable ORDER BY salary) A
0
NEER 7 Сен 2016 в 07:52