分析:第二高的薪水我们可以考虑使用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;
结果为:
后记:看了官方的ifnull去看了用法才会的,有点笨。这个答案也是官方的答案。