如何从员工表中查找员工领取的第二最高工资。是否可以通过ROWNUM函数查找。
示例表:
S.no Name employee_id salary
201 Steven 100 1000
202 Alexander 101 2500
203 Daniel 102 5000
204 John 103 3000
205 Ishanth 104 8000
Run Code Online (Sandbox Code Playgroud)
既然你提到了第二高的工资,你应该使用DENSE_RANK而不是ROW_NUMBER如果有两个员工具有相同的最高值,即使你给出了WHERE ROW_NUMBER = 2条件,这也会错误地给你最高的工资。
SELECT A.S_NO, A.NAME, A.EMPLOYEE_ID, A.SALARY
FROM
(SELECT S_NO, NAME, EMPLOYEE_ID, SALARY,
DENSE_RANK() OVER (ORDER BY SALARY DESC) AS SALARY_RANK) A
WHERE A.SALARY_RANK = 2;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10758 次 |
| 最近记录: |