题目:
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 |
+———————+
Answer:
思路一:因为需求当第二高salary不存在时返回null,故采用子查询语句。
SELECT
(SELECT DISTINCT
Salary
FROM
Employee
ORDER BY Salary DESC
LIMIT 1 OFFSET 1) AS SecondHighestSalary
;
思路二:利用ifnull
SELECT
IFNULL(
(SELECT DISTINCT Salary
FROM Employee
ORDER BY Salary DESC
LIMIT 1 OFFSET 1),
NULL) AS SecondHighestSalary

本文介绍两种SQL查询方法来获取员工表中第二高的薪资。如果第二高薪资不存在,则返回null。第一种方法使用子查询结合LIMIT和OFFSET关键字;第二种方法通过IFNULL函数处理可能的空值情况。
1191

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



