176. 第二高的薪水
难度简单674
SQL架构
编写一个 SQL 查询,获取 Employee
表中第二高的薪水(Salary) 。
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
例如上述 Employee
表,SQL查询应该返回 200
作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null
。
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
+---------------------+
解题过程
- 注意点
- 题目求返回第二高的薪水,而不是按薪水排序取第二个,意思就是存在相同薪水的情况
- 由于可能有不存在薪水的情况,所以题意要求输出一件null的情况,而不是输出null,因此需要对取出结果进行ifnull的判断,从而输出值为null的情况
题解
select
IFNUll((select distinct Salary
from
Employee
order by
Salary desc
limit 1, 1), null) AS SecondHighestSalary