方法一:

思路: 这题的关键在于如何求第二高薪水,利用子查询嵌套子查询。

①先在工资表里找出最多工资,再以工资小于最大工资为限定条件,即 salary <(select max (salary) 可以得到除去排名第一工资的表。

②再使用 max (salary) 在除去排名第一工资的表里找最大的工资,即找到排名第二的工资。

代码:

select
    e.emp_no,
    salary,
    last_name,
    first_name
from
    employees e
    left join salaries s on e.emp_no = s.emp_no
where
    salary = (
        select
            max(salary)
        from
            salaries
        where
            salary < (
                select
                    max(salary)
                from
                    salaries
            )
    )