这道题我只想到第二高数据,那个null真没弄明白,看了答案,写了两个,不过我还是喜欢第二个,虽然第一个答案跟我写的差不多就是外层多了一个select,别名也在外面,哈哈,这么一说,差距挺大的
--------------------------------------------------------------------------
第一种方法:
select (select distinct Salary from Employee order by Salary desc limit 1 offset 1) as SecondHighestSalary
查询出数据,不考虑是否有值还是null,然后外层select查询数据并指定别名,当值为空的时候,默认赋值null,我觉得是这样的。
第二种方法:这个方法直接使用ifnull,当数据为空的时候,赋值为null,然后外层Select查数据,给指定别名,select相当于直接查询表,以前没这么用过,哈哈哈,还是菜啊
select ifnull( (select distinct Salary from Employee order by Salary desc limit 1 offset 1),null) as SecondHighestSalary