limit子句对记录进行筛选
limit row_count offset offset_num
row_count代表输出的行数,offset代表偏移量。即从(1+offset_num)行开始展示row_count行。
常常与order by 子句一起使用,让操作更有意义。
例如这道题,取出第二高的薪水,就可以先将记录按照薪水数值降序排序,然后取出第二位的一行,即row_count=1,offset_num=1。
用代码表示就是
select distinct salary
from Employee
order by Salary desc
limit 1 offset 1
也有写法为(注意顺序)
limit offset_num, row_count
运用limit和offset可以解决这种取出第n个问题。
参考:https://www.yiibai.com/sql/sql-limit.html
除此之外,题目要求如果没有第二条记录,return null,就要用到isNull( check_expression , replacement_value)
如果 check_expression is null,返回 replacement_value
select ifNull(
(select distinct salary
from Employee
order by Salary desc
limit 1 offset 1)
, null
) as SecondHighestSalary;