Напишите запрос SQL, чтобы получить вторую по величине зарплату из таблицы Employee.
| Id | Salary |
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
Например, с учетом приведенной выше таблицы сотрудников, запрос должен возвращать 200 в качестве второго по величине оклада. Если второго по величине оклада нет, запрос должен вернуть ноль.
| SecondHighestSalary |
| 200 |
Это вопрос от Leetcode, для которого я ввел следующий код:
SELECT CASE WHEN Salary = ''
THEN NULL
ELSE Salary
END AS SecondHighestSalary
FROM (SELECT TOP 2 Salary
,ROW_NUMBER() OVER (ORDER BY Salary DESC) AS Num
FROM Employee
ORDER BY Salary DESC) AS T
WHERE T.Num = 2
В нем говорится, что запрос не возвращает NULL, если нет значения для второго по величине оклада.
Например, если таблица
| Id | Salary|
| 1 | 100 |
Запрос должен вернуть
|SecondHighestSalary|
| null |
а не
|SecondHighestSalary|
| |