Я новичок и изучаю SQL.Практикуя SQL на тренировочной платформе, я натолкнулся на следующий вопрос: написать SQL-запрос, чтобы получить второй по величине оклад из таблицы Employee.
|Id | Salary
| 1 | 100
| 2 | 200
| 3 | 300
Например, для приведенной выше таблицы Employee запросдолжен вернуть 200, как вторая самая высокая зарплата.Если второго по величине оклада нет, запрос должен вернуть ноль.
|SecondHighestSalary ||200 |
Я собираюсь использовать функцию Oracle Analytical для написания запроса.Написанный мною запрос выглядит следующим образом:
select Salary as SecondHighestSalary
from (SELECT salary, dense_rank() over(order by salary desc) myrank
FROM Employee)
where myrank =2;
Мой запрос не может обработать тестовый случай со значениями NULL и выдает ошибку.Кто-нибудь может ответить на мой вопрос?