力扣MySQL(1)

176. 第二高的薪水 - 力扣(LeetCode)

1.欲获取第二高,需要排序。排序使用order by,默认是升序排列,即asc.我们要得到第二高,应该是降序排列,需要使用关键字desc

2.去重。如果我们只是得到表中第二行的数据,若最高薪水的人有多个,那么我们得到的就是最高薪水了。去重使用distinct

3.怎么获取第二高?使用limit.

limit用于限制查询结果返回的行数,常用于分页查询。语法为:

sql 复制代码
limit row_count offset offset_

等价于:

sql 复制代码
limit offset_,row_count

注意,不包含第offset_条。只指定一个参数时,表示返回的行数。

4.临界输出:如果不存在则应返回null,使用ifNull()实现这个功能。语法为:

sql 复制代码
ifNull(expr,null)

如果expr为真则返回expr,否则返回null

答案:

sql 复制代码
# Write your MySQL query statement below
select ifnull ((
    select distinct Salary
    from Employee
    order by Salary desc limit 1,1),null) as SecondHighestSalary