Leetcode 176 第二高的薪水

题目:176. 第二高的薪水

我的解答

下面这个最初的解答被判定为错,乐扣没显示是哪些测试用例错了,所以也没办法改进。

1
2
3
4
5
6
7
# Write your MySQL query statement below
SELECT MAX(salary) AS SecondHignestSalary
FROM Employee
WHERE salary < (
    SELECT MAX(salary)
    FROM Employee
);

下面这个解答是成功通过的:

1
2
3
4
5
SELECT IFNULL(
(SELECT DISTINCT salary
FROM Employee
ORDER BY salary DESC
LIMIT 1 OFFSET 1),NULL) AS SecondHighestSalary;

DISTINCT参数用于让查询结果中相同的值只出现一次。

DESC关键字用于让查询结果按降序进行排序。

IFNULL()函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值。

LIMITOFFSET 用于对查询结果进行分页,每次返回查询结果的一部分。