先查询出最多工资的薪资,小于最多工资的最大薪资就是第二多的薪资。 所以查询出来的薪资做等值比较得出薪资第二的人的数据,本题主要说不能使用order by的情况下如何做排行


select
    b.emp_no,
    b.salary,
    a.last_name,
    a.first_name
from
    employees a
    inner join salaries b on a.emp_no = b.emp_no
where
    b.salary = (
        select
            max(salary)
        from
            salaries
        where
            salary <
        (select
            max(salary)
        from
            salaries)
    )