SQL刷题记录——176. 第二高的薪水

it2023-07-04  70

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;
最新回复(0)