如题
方法一:使用子查询和LIMIT语句(这种办法遇到NULL值处理不了)
使用不同的薪资降序排列,然后使用LIMIT子句获得第二高的薪资
SELECT DISTINCT Salary AS SecondHighestSalary
FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET 1;
由于存在可能没有第二高的工资,我们将其作为临时表
SELECT (SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET 1) AS SecondHighestSalary;
方法二:使用IFNULL和LIMIT句子结合
一般需要解决NULL问题的都是使用IFNULL函数
SELECT
IFNULL(
(SELECT DISTINCT Salary
FROM Employee
ORDER BY Salary DESC
LIMIT 1 OFFSET 1),
NULL) AS SecondHighestSalary
总结
IFNULL的用法:
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
IFNULL() 函数语法格式为: