查询Employee表中的第二高工资

第二高工资

编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。


表结构如下:
Id Saraly
1 100
2 200
3 300
4 400

例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null


SecondHighestSalary
200

解答:

  • 方法一:
    从比最高工资中低的里面选择一个最高的即为第二高工资
1
select max(Salary) as SecondHighestSalary from Employee where Salary < (select max(Salary) from Employee);

-方法二:
先根据工资降序排列,再使用limit函数,取第二条数据

1
select IFNULL ((select distinct Salary  from Employee order by Salary desc limit 1,1),null) as SecondHighestSalary;
分享到