题解 | #获取当前薪水第二多的员工的emp_no以及其对应的薪水salary#
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
http://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
SELECT e.emp_no, s.salary, e.last_name, e.first_name from employees e left join salaries s on e.emp_no=s.emp_no where s.salary =( select max(s2.salary) from salaries s2 where s2.salary < (select max(salary) from salaries where to_date = '9999-01-01') and s2.to_date='9999-01-01');
因为不能用order by,所以选择用max对数据进行筛选,首先把最大的工资筛选掉,即(select max(salary) from salaries where to_date = '9999-01-01'),to_date必须要因为有的员工可能不在了,但工资是第一名;再利用max筛选出最大值即为第二名的工资,to_date 同理