题目

image.png

建表语句

  1. Create table If Not Exists Employee (id int, salary int)
  2. Truncate table Employee
  3. insert into Employee (id, salary) values ('1', '100')
  4. insert into Employee (id, salary) values ('2', '200')
  5. insert into Employee (id, salary) values ('3', '300')

解题思路

将不同的薪资按降序排序,然后使用limit子句获得第二高的薪资。
但是这样不满足只有一条薪资的情况。
所以要考虑NULL的情况

SQL代码

SELECT
    IFNULL(
      (SELECT DISTINCT Salary
       FROM Employee
       ORDER BY Salary DESC
        LIMIT 1 OFFSET 1),
    NULL) AS SecondHighestSalary