【发布时间】:2020-03-02 20:58:17
【问题描述】:
我用过这个,它给了我第三高的薪水。但我需要第三和第五高的薪水。
SELECT * FROM
(
SELECT
ROWNUM, HR.DEPARTMENTS.DEPARTMENT_NAME, HR.EMPLOYEES.FIRST_NAME, HR.EMPLOYEES.LAST_NAME, HR.EMPLOYEES.SALARY
FROM HR.EMPLOYEES
JOIN HR.DEPARTMENTS ON HR.EMPLOYEES.DEPARTMENT_ID = HR.DEPARTMENTS.DEPARTMENT_ID
WHERE (HR.DEPARTMENTS.DEPARTMENT_NAME = 'IT' OR HR.DEPARTMENTS.DEPARTMENT_NAME = 'Sales' OR HR.DEPARTMENTS.DEPARTMENT_NAME = 'Finance')
ORDER BY HR.EMPLOYEES.SALARY desc
)
OFFSET 2 ROWS
FETCH NEXT 1 ROW ONLY
我试过之后
SELECT
ROWNUM, HR.DEPARTMENTS.DEPARTMENT_NAME, HR.EMPLOYEES.FIRST_NAME, HR.EMPLOYEES.LAST_NAME, HR.EMPLOYEES.SALARY,row_number() over (order by HR.EMPLOYEES.SALARY desc) AS n
FROM HR.EMPLOYEES
JOIN HR.DEPARTMENTS ON HR.EMPLOYEES.DEPARTMENT_ID = HR.DEPARTMENTS.DEPARTMENT_ID
WHERE (HR.DEPARTMENTS.DEPARTMENT_NAME = 'IT' OR HR.DEPARTMENTS.DEPARTMENT_NAME = 'Sales' OR HR.DEPARTMENTS.DEPARTMENT_NAME = 'Finance') AND (n = 3 OR n = 5)
ORDER BY HR.EMPLOYEES.SALARY desc
ORA-00904:“N”:无效标识符
谁能帮帮我?
【问题讨论】: