题干
Employee 表:
±------------±-----+
| Column Name | Type |
±------------±-----+
| id | int |
| salary | int |
±------------±-----+
在 SQL 中,id 是这个表的主键。
表的每一行包含员工的工资信息。
查询并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null(Pandas 则返回 None) 。查询结果如下例所示。
示例
解答
先通过排序和limit函数将第二名取出来,再判断若为空则返回null
select ifnull(
(select distinct salary from employee
order by salary desc limit 1 offset 1),null)as SecondHighestSalary
酷爱使用临时查询的小伙伴们需注意!若将第一段代码放入临时表,则case2会报错!因为临时表中没结果的时候是返回0行,而不是null