ОШИБКА: однострочный подзапрос возвращает более одной строки - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу обновить имя_департамента на deparment_name и '_1' (пример: Administration_1), чтобы список, который делится на 2, но здесь есть ошибка, пожалуйста, помогите написать правильный ответ. ОШИБКА: однострочный подзапрос возвращает более одной строки

UPDATE departments
SET department_name= (SELECT department_name || '_1' from departments)
WHERE  manager_id=
(select manager_id from  employees 
WHERE  MOD( manager_id, 2) != 0);

Ответы [ 3 ]

0 голосов
/ 07 ноября 2018

Вы пытаетесь обновить одну строку множеством строк (ваш (ВЫБЕРИТЬ имя-отдела || '_1' из отделов)) Я думаю, что вы можете просто сделать

SET department_name= department_name || '_1'
0 голосов
/ 07 ноября 2018

Вы можете попробовать ниже

UPDATE departments
SET department_name= SELECT department_name || '_1' 
WHERE  exists
     (select employees.manager_id from  employees where departments.manager_id =employees.manager_id
      and MOD( employees.manager_id, 2) != 0)
0 голосов
/ 07 ноября 2018

вы можете попробовать с помощью слияния

MERGE INTO departments a
    USING ( SELECT department_name || '_1' as name,
            DEPARTMENT_ID from departments
            WHERE  manager_id in (
           (select manager_id from  employees 
            WHERE  MOD( manager_id, 2) != 0)
           )
         ) b
    ON ( a.DEPARTMENT_ID = b.DEPARTMENT_ID )
    WHEN MATCHED THEN 
    UPDATE SET  a.department_name = b.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...