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;
本文介绍了一种SQL查询技巧,用于从员工表中获取第二高的薪资。通过使用子查询和DISTINCT关键字,确保了即使在没有第二高薪资的情况下也能正确返回NULL。此方法适用于所有SQL数据库,包括MySQL、PostgreSQL等。
3511

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



