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 second highest salary is 200. If there is no second highest salary, then the query should return null.
Corner case:
Case 1: There is only one row in the table. Then I need return a null.
Case 2: There are more than one row that have highest Salary value, so the second highest salary isn’t the second one in order using “ORDER BY”. Then I will use “DISTINCT”.
select max(Salary) as SecondHighestSalary from
(
select distinct Salary from Employee order by Salary desc limit 1,1
)
as a;

本文介绍了一种使用SQL查询来获取员工表中第二高的薪水的方法。考虑到特殊情况,如表中只有一条记录或最高薪水有多条相同记录时,如何正确返回结果。
441

被折叠的 条评论
为什么被折叠?



