mysql查询第二高薪水
问题描述
编写一条SQL,查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。
表名为employee员工表
解决思路
有数据返回数据,无数据返回null。
根据这个要求,我们可以考虑采用mysql的IFNULL函数:(摘自菜鸟教程)
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值
完整的sql如下:
SELECT
IFNULL( ( SELECT salary FROM employee ORDER BY salary DESC LIMIT 1, 1 ), NULL ) AS secondHighSalary
结论:
类似的场景我们都可以考虑使用ifnull函数
即有结果返回结果,没有的话返回null。
另外呢,对应查数据中第二高的等等,取排序后的某一个数值的,解决的思路是:先orderby排序,再limit定位取值!
希望能帮到各位,占用大家时间了!