Write a SQL query to get the second highest salary from the Employee table.
+—-+——–+
| Id | Salary |
+—-+——–+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+—-+——–+
For example, given the above Employee table, the query should return 200 as the second highest salary. If there is no second highest salary, then the query should return null.
+———————+
| SecondHighestSalary |
+———————+
| 200 |
+———————+
找出第二大的数字,这道题遇到的两个坑是,没有第二大的时候需要返回的是null,第二个使用select ifnull()后忘记加别名,开始加到了里面,显然是错的。
SELECT IFNULL(
(SELECT DISTINCT Salary FROM Employee
ORDER BY Salary DESC LIMIT 1 OFFSET 1) ,
NULL) AS SecondHighestSalary;