咨询电话:
15628812133
27
2025/06

mysql中查询第二高的值解决思路

发布时间:2025-06-27 09:48:10
发布者:神棍子
浏览量:
0

在问题中提供了一个empoyee表,有字段id和salary,需要将salary字段中取出第二高的值,如果没有第二高则返回null,输出字段名为SecondHighestSalary,使用mysql语法编写

待用表结构 epoyee 

首先我们分析这个表只有单纯的一个字段,查询后加一个as,倒序排列该表,然后limit第二条即可,所以sql语句如下

select salary as SecondHighestSalary from Employee order by salary desc limit 1,1

运行测试成功,但是当数据不足三条时报错,输入信息如下

错误信息 

所以需要修正没有时显示null,因为单条sql返回查不出来时只能返回空,所以需要将该查询套入一个子查询中,用ifnull方法判断为空时显示null,该方法判断不为空显示第一个值,为空显示第二个值,所以sql如下

        select ifnull(

            (

                select salary as SecondHighestSalary

                from Employee group by salary order by salary desc limit 1,1

            ),

            null

        ) as SecondHighestSalary

测试用例全部通过,方法可行

测试用例通过

上一篇: 分享一份python每天8点自动发送邮件的案例
下一篇: 没有了
关键词:
返回列表