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

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

发布了39 篇原创文章 · 获赞 13 · 访问量 2300

猜你喜欢

转载自blog.csdn.net/weixin_45612794/article/details/103743865
今日推荐