题目
解答
方法一:使用order by
select e.emp_no,s.salary,e.last_name,e.first_name
from salaries as s left join employees as e
on s.emp_no=e.emp_no
where s.to_date='9999-01-01'
order by salary desc
limit 1 offset 1;
方法二:不使用order by
主要是salary的选择:除了第一高的它就是最大的
select e.emp_no,s.salary,e.last_name,e.first_name
from salaries as s left join employees as e
on s.emp_no=e.emp_no
where s.to_date='9999-01-01'
and s.salary = (select max(salary) from salaries where s.to_date='9999-01-01'
and salary<(select max(salary)from salaries where s.to_date='9999-01-01'))