Second Highest Salary

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/majichen95/article/details/85237835

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,如果直接使用查询会查询为空,而不会返回NULL,所以需要将此查询作为子查询。

第二点是找第二高的工资,是工资多少排第二,而不是工资排名第二,所以需要distinct修饰。

select 
(select distinct Salary from Employee order by Salary desc limit 1,1)
as SecondHighestSalary;

猜你喜欢

转载自blog.csdn.net/majichen95/article/details/85237835