题目链接:
解析:
看到这道题,我刚开始的想法是使用ORDER BY
指令排序,然后通过LIMIT
输出第二行数据就可以了,但是这样做会有两个bug,一个是如果存在两个Id有相同的Salary并且都为最高,则我们的输出还是最高Salary;另一个就是这样无法满足题目要求的If there is no second highest salary, then the query should return null。这是因为SELECT
指令会在没有满足条件的输出时,会输出空。
所以我们应该使用MAX()
函数,其满足没有记录时输出null的条件。
题解:
# Write your MySQL query statement below
SELECT MAX(Salary) AS SecondHighestSalary FROM Employee
WHERE Salary < (SELECT MAX(Salary) FROM Employee);
网友评论