题目
分析
第二高的薪水我们可以考虑使用order by字句排序后直接offset截取一下就可以,所以我们可以这样使用:
SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET 1
但是这样结果是错的,因为还有个要求:如果不存在第二高的薪水,查询返回null。这一块可以直接使用ifnull的判断了。
答案如下:
SELECT
IFNULL(
(SELECT DISTINCT Salary
FROM Employee
ORDER BY Salary DESC
LIMIT 1 OFFSET 1),
NULL) AS SecondHighestSalary;