题解 | #获取薪水第二多的emp_no以及salary#

获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719

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

难点主要在于where和子查询的多层嵌套。

因为不允许用order by,所以先用where salary < (select max(salary) from salaries) 取出除开最大工资的其他员工,

(select max(salary) from salaries where salary < (select max(salary) from salaries)) ,取出第二大的,然后将值通过where赋给salary,这是定位到个体,最后才考虑连表查全信息。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务