题解 | #获取当前薪水第二多的员工的emp_no以及其对应的薪水salary#
获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
http://www.nowcoder.com/practice/8d2c290cc4e24403b98ca82ce45d04db
因为员工的薪水可能相同,所以我们可以先用一个子句查出第二多的薪水是多少,然后再查询拥有第二多薪水的员工。子句中我们使用DISTINCT去重,这里介绍一下查询语句的执行顺序
这里可以看到DISTINCT语句是在ORDER BY之前执行的,所以在使用limit语句时,薪水已经去重并排好顺序,所以limit语句选中的就是第二多的薪水。代码如下:
SELECT emp_no,salary
FROM salaries
WHERE salary=(
SELECT DISTINCT salary
FROM salaries
ORDER BY salary DESC
LIMIT 1,1
)
查看6道真题和解析