Я пытаюсь закодировать запрос, в котором будут отображаться сотрудники, которые работают в качестве разработчиков ('%_PROG'
) или менеджеров ('%_MAN'
). Мой запрос прекрасен, за исключением второй строки с CASE WHEN THEN
. Я получаю сообщение об ошибке:Oracle SQL: CASE WHEN THEN
ORA-00923 FROM ключевое слово не найдено, где ожидается
поэтому проблема должна быть со второй линией, которая:
(CASE WHEN JOB_ID LIKE '%_PROG' THEN "Developer" ELSE "Manager" END) JOB_ID
Здесь это весь запрос:
SELECT 'Employee# ' || EMPLOYEE_ID
|| ' named ' || FIRST_NAME
|| ' ' || LAST_NAME || ' who is '
|| CASE WHEN JOB_ID LIKE '%_PROG' THEN "Developer" ELSE "Manager" END
|| ' will have a new salary of $'
|| ROUND((SALARY +((SALARY/100)*25)),-2) AS "Employees with higher salary"
FROM EMPLOYEES
WHERE JOB_ID LIKE '%_PROG' OR JOB_ID LIKE '%_MAN'
AND (SALARY >= 3000 AND SALARY <= 5000)
ORDER BY EMPLOYEE_ID;
Выход должен выглядеть так:
Employee# 103 named Anna Clark who is Developer will have a new salary of $006,100
Что я делаю неправильно?
У вас ошибка в том, где п. «Разработчик» избыточен до OR –
@OleksiiAza исправил это, но все еще получал ошибку. Есть идеи? – naomi88
также я считаю, что вы должны использовать одинарные кавычки в инструкции «CASE THEN», когда вы указываете результат. Например. «Разработчик» и «Менеджер» –