テーブルに重複したレコードがある場合には動作しない行番号が使用されている場合は、上記の回答で最初に指摘したいことがあります。あなたは上記のクエリが正しい結果をもたらすことはない別のものを使用して終了する必要があります。
同じ機能を実現する方法はたくさんあります。あなただけの最高給与を見つける必要があるなら、あなたは従業員のn番目の最高給与を見つけるために、サブクエリ
Select Max(Salary) from Employees where Salary < (Select Max(Salary) from Employees)
SQLクエリを使用して、従業員表の第二最高給与を見つけるために
Select Max(Salary) from Employees
SQLクエリを使用することができますCTE
012を使用して、従業員表の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クエリを使用して使用してテーブルあなたは私のブログHow to find nth highest salary using SQL query
に同じの詳細を知ることができ、従業員テーブルに
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
を第三最高の給料を得るために
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