获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

 limit 1,1  从当前选择的第二个开始,选取1条记录

当然上述解答还不够严谨

因为如果薪水第一多有多名员工,那么用  limit 1, 1  取出来的就不一定是薪水第二的员工了

使用嵌套查询,首先找出排第二的薪水是多少,使用group by进行分组,并且限制时间,必须是当前薪水,然后使用挑选出来的薪水

去查找符合条件的记录。

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary

然而,第二次的解答仍然不够优秀!

 因为在子查询中我们返回的是薪水,在外层查询使用薪水去查询一条记录,如果表中的数据量很小的话,

查询速度会很快,但是,当数据量非常大的时候就非常麻烦了。

如图,令子查询返回员工号,因为emp_no是主键,所以这样会更好的优化性能。

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary