Second Highest Salary(选择第二高的工资)

要求:

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.

Create table If Not Exists Employee (Id int, Salary int);
Truncate table Employee;
insert into Employee (Id, Salary) values ('1', '100');
insert into Employee (Id, Salary) values ('2', '200');
insert into Employee (Id, Salary) values ('3', '300');

方法一:

select IF(
	(select count(DISTINCT Salary) from Employee)>1
	,(select Salary  from Employee  order by Salary desc limit 1,1)
	,null)
	as SecondHighestSalary;

方法二:

SELECT max(Salary)
FROM Employee
WHERE Salary < (SELECT max(Salary) FROM Employee)

猜你喜欢

转载自blog.csdn.net/qq_35448976/article/details/79497162