编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null ?
方法1:不使用IFNULL
select
(select
distinct salary
from Employee
order by salary desc
limit 1,1) as SecondHighestSalary;
方法2:使用IFNULL
select
ifnull(
(select
distinct salary
from Employee
order by salary desc
limit 1,1),
null) as SecondHighestSalary;
注意:如果没有这样的第二最高工资,这个解决方案将被判断为 “错误答案”,因为本表可能只有一项记录。为了克服这个问题,我们可以将其作为临时表