SQL212
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
https://www.nowcoder.com/practice/c1472daba75d4635b7f8540b837cc719
select s.emp_no,salary,last_name,first_name from employees e join salaries s on e.emp_no=s.emp_no where salary = (select max(salary) from employees e join salaries s on e.emp_no=s.emp_no where salary < (select max(salary) from employees e join salaries s on e.emp_no=s.emp_no))
查询结果:职员编号(s.emp_no或e.emp_no都行),salary,last_name,first_name
查询来源:employees,salaries
查询条件:薪水排名第二,不能使用order by函数
解题思路:由于查询结果来自于两张表,所以需要先将两表进行链接,两表相关联的数据为职员编号(emp_no),所以链接健选择emp_no。假设两张表的职员的信息是一一对应的,所以这里使用内连接。要筛选出薪水排名第二的数据,那么只要在所有小于薪水排名第一的数据里选择最高的那个,就是排名第二的(有点类似于矮个子里挑高个)。所以这里选择先使用where子查询查询出所有小于薪水最高的数据,然后再在其中选出薪水最高的数据作为where子查询的条件,最后就能再选择查询对应的职员编号,salary,last_name,first_name