数据库练习——leetcode(176):分页查询limit与对null的处理
一、题目
二、解析
利用limit
语句进行查询:
select distinct
Salary as SecondHighestSalary
from
employee
order by Salary desc
limit 1,1;
关于limit的用法详见这里。
但是如果这样写是错误的,因为如果只有一条数据的话他啥也不返回,而题干要求返回null:
你看,他只返回了一个empty set.
鉴于这种情况,我们可以将它作为一个临时表,即返回一个临时表,表里只有Null
select
(select distinct Salary from Employee
order by Salary desc limit 1,1)
as SecondHighestSalary;
效果如下:
- 解法2:使用
IFNULL
,此函数用法详见这里。
SELECT
IFNULL(
(SELECT DISTINCT Salary
FROM Employee
ORDER BY Salary DESC
LIMIT 1 OFFSET 1),
NULL) AS SecondHighestSalary