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