版权声明:本文为博主原创文章,未经博主允许不得转载。 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;