mysql查询第二高薪水

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定位取值!

希望能帮到各位,占用大家时间了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章