Как выбрать n-ую строку из таблицы, используя rownum - PullRequest
0 голосов
/ 18 декабря 2018
SELECT emp_id INTO high_payed_emp_id
FROM (SELECT emp_id  from cursor_table ORDER BY emp_salary DESC)
WHERE rownum = 1;

Я пытаюсь получить emp_id из макс.оплачиваемый сотрудник сообщение об ошибке: ORA-00905: отсутствует ключевое слово

Ответы [ 4 ]

0 голосов
/ 18 декабря 2018

Мне кажется, это самый простой подход для выбора сотрудников с максимальной зарплатой в Oracle:

select emp_id from cursor_table where emp_salary 
= (select max(emp_salary) from cursor_table)
0 голосов
/ 18 декабря 2018
SELECT emp_id INTO high_payed_emp_id
FROM (SELECT emp_id  from cursor_table 
WHERE emp_salary = (select max(emp_salary) from cursor_table))a
0 голосов
/ 18 декабря 2018

Вместо этого используйте FETCH FIRST, добавьте WITH TIES, чтобы получить оба, если есть два (или более) с одинаковой максимальной зарплатой:

SELECT emp_id
FROM cursor_table
ORDER BY emp_salary DESC
FETCH FIRST 1 ROW WITH TIES
0 голосов
/ 18 декабря 2018

Вам нужен правильный синтаксис sql

 insert INTO  high_payed_emp_id (emp_id)
 select * from
 (
 SELECT emp_id
 FROM cursor_table ORDER BY emp_salary DESC
  )
 WHERE ROWNUM <= 1;
...