1. 程式人生 > 實用技巧 >LeetCode第二高的薪水SQL

LeetCode第二高的薪水SQL

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

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

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

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

程式碼

Select (Select distinct Salary from Employee order by Salary DESC limit 1,1) As SecondHighestSalary

或者

Select (Select Salary from Employee group by Salary order by Salary DESC limit 1,1) As SecondHighestSalary

解析

Select Salary from Employee 從表 Employee 中查詢Salary

group by SalarySalary 去重

order by Salary DESCSalary 倒序

limit X,Y中X表示跳過X個數據,讀取Y個數據

Select * As SecondHighestSalary 是把 * 號當做一個臨時表,如果查詢不到,就返回null