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.
代码:
SELECT IFNULL( (SELECT distinct Salary as SecondHighestSalary FROM Employee order by Salary desc limit 1,1) ,null) as SecondHighestSalary;
或:
SELECT MAX(Salary)FROM Employee WHERE Salary < (SELECT MAX(Salary)FROM Employee);
或:
SELECT (SELECTDISTINCT Salary FROM Employee ORDERBY Salary DESC LIMIT 1,1);
或:
SELECT MAX(Salary) FROM Employee E1
WHERE 1 =
(SELECT COUNT(DISTINCT(E2.Salary)) FROM Employee E2
WHERE E2.Salary > E1.Salary);
注意MySQL语法中的LIMIT的用法:
注意mysql语法中的DISTINCT的用法:
注意mysql语法的IFNULL关键字的用法:
- 1
- 2
本文介绍如何使用SQL从员工表中获取第二高的薪水。提供了多种不同的查询方法,并解释了每种方法背后的逻辑,包括使用LIMIT、子查询和聚合函数。
1265

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



