Во-первых, я хочу указать в ответе выше, если используется номер строки, который не будет работать, если в таблице есть повторяющиеся записи. В конечном итоге вам придется использовать другое, иначе приведенный выше запрос не даст правильного результата.
Есть много способов достичь той же функциональности. Если вам просто нужно найти максимальную зарплату, вы можете использовать
Select Max(Salary) from Employees
SQL-запрос для поиска 2-й наивысшей зарплаты в таблице сотрудников с использованием подзапроса
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
Для получения 3-й Высшей зарплаты в таблице сотрудников
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
Более подробную информацию об этом можно найти в моем блоге. Как найти самую высокую зарплату с помощью SQL-запроса