LeetCode176——第二高的薪水
我的LeetCode代码仓:
原题链接:
题目描述:
知识点:LIMIT语句
思路一:使用子查询和LIMIT语句
先对薪水从高到低进行排序,再使用LIMIT语句进行筛选出第二高的薪水。
如果表中存在薪水相同的情况,比如表中只存在2个薪水,且均是100,我们需要视为其均是第一,即不存在第二高的薪水。因此,我们需要使用DISTINCT来去除薪水重复的情况。
LIMIT 1, 2表示的是返回第2行到第3行的数据,也可以使用LIMIT 2 OFFSET 1。
SQL语句:
SELECT (SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1, 1) AS SecondHighestSalary
LeetCode解题报告:
思路二:使用IFNULL函数和LIMIT语句
IFNULL(expr1,expr2)函数的用法:
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值。
SQL语句:
SELECT IFNULL((SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT 1, 1), NULL) AS SecondHighestSalary
LeetCode解题报告:
上一篇:
IDEA上Java项目控制台中文乱码