176. 第二高的薪水
题目描述
写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。
+
| Id
| Salary
|
+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+
例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。
+
| SecondHighestSalary
|
+
| 200 |
+
思路
步骤1:首先写查询第二高薪水的语句
select distinct Salary
as SecondHightestSalary
from Employee
order by Salary
DESC
limit 1,1
步骤二:考虑特殊情况,题目要求,如果没有第二高的成绩,返回空值,所以这里用判断空值的函数(ifnull)函数来处理特殊情况。ifnull(a,b)函数解释:
如果value1不是空,结果返回a
如果value1是空,结果返回b
对于本题的sql就是:
select ifnull
(第
1步的
sql,null) as SecondHightestSalary
;