176. 第二高的薪水
题意
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。
±—±-------+
| Id | Salary |
±—±-------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
±—±-------+
例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。±--------------------+
| SecondHighestSalary |
±--------------------+
| 200 |
±--------------------+
Code
# 方法一
select ifnull(
(select distinct salary from employee order by salary desc limit 1, 1), null
) as SecondHighestSalary;
# 通过ifnull来处理为null的情况,另外这个题需要去重
# 方法二
select (
select distinct salary from employee order by salary desc limit 1, 1
) as SecondHighestSalary;
# 类似于select null