请你查找薪水排名第二多的员工编号emp_no、薪水salary、last_name以及first_name,不能使用order by完成,以上例子输出为:
于是这道题的问题就是不排序如何取到第二大的数据
写一个我个人的思路,通过两个子查询来完成,第一个子查询找到最大的薪水数据
令他查询的salary等于比最大的薪水小的多条数据里的最大薪水
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
WHERE s.salary = (#令查询的salary等于多条数据里的最大薪水
SELECT max(salary)#取到剩下的员工中薪水最大的值
FROM salaries
WHERE salary<(
SELECT max(salary)#找到最大的薪水
FROM salaries
)
)
```
题是解完了,那么如果要找第15,第16大的薪水呢,那么该如何操作?