天天看點

MySQL每日一題(2)『第二高的薪水』

第二高的薪水

編寫一個 SQL 查詢,擷取 Employee 表中第二高的薪水(Salary) 。

+----+--------+
| Id | Salary |
+----+--------+
| 1  | 100    |
| 2  | 200    |
| 3  | 300    |
+----+--------+
           

例如上述 Employee 表,SQL查詢應該傳回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應傳回 null。

+---------------------+
| SecondHighestSalary |
+---------------------+
| 200                 |
+---------------------+
           

在此題中,表明如果不存在第二高的薪水,查詢傳回null,此題公兩種方法,方法一是使用子查詢和LIMIT子句

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

方法二:使用IFNULL函數和LIMIT子句

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

提示:

offset X 是跳過X個資料

limit Y 是選取Y個資料

作者:LeetCode

連結:https://leetcode-cn.com/problems/second-highest-salary/solution/di-er-gao-de-xin-shui-by-leetcode/

來源:力扣(LeetCode)

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。