with lsb as (select max(s.salary) as ms from employees e join salaries s on e.emp_no = s.emp_no), lsb2 as (select max(salary) as ms1 from( select e.emp_no, s.salary, e.last_name, e.first_name from employees e join salaries s on e.emp_no = s.emp_no , lsb where s.salary < ms) t) select e.emp_no, s.salary, e.last_name, e.first_name from employees e join salaries s on e.emp_no = s.emp_no, lsb2 where s.salary = ms1
先找到最大的薪资,然后找到小于最大薪资的所有数据,再从这些数据中找打最大的薪资数据,就是第二高的薪资

京公网安备 11010502036488号