2017-02-19 1 views
0

столбец Job_ID в таблице Employees имеет уникальные данные для каждой строки, и мне нужно обновить эти данные либо как «MANAGER» или «TELLER», используя значение другого столбца FIRST_NAME, как показано ниже, но, похоже, обновление не происходит Мои ожидания для FIRST_NAME = VIJES ИЛИ UNNATH JOB_ID должен быть «Менеджер» и для других должны быть «Teller»MySQL - обновить несколько значений с помощью примера Then End

Начало реакции в 0 ряд (ов) соответствует затрагиваемые Ряды:. 6 Изменено : 0 Предупреждения: 0

UPDATE EMPLOYEES 
SET JOB_ID = CASE 
WHEN FIRST_NAME IN ('VIJES','UNNATH') THEN JOB_ID = 'MANAGER' 

WHEN FIRST_NAME NOT IN ('VIJES','UNNATH') THEN JOB._ID = 'TELLER' 
END 
WHERE FIRST_NAME IN ('VIJES','UNNATH','VINOD','RAKESH','ANANT','MUKESH') 

Поймите, что я могу запускать индивидуальный запрос обновления с критериями FIRST_NAME для каждой строки, но ищет один запрос обновления для всей таблицы.

Просьба уточнить

ответ

0

Синтаксис вы должны использовать это присвоение JOB_ID столбца выражение CASE, и больше ничего. В настоящее время вы назначаете выражение CASE, которое затем снова пытается присвоить значение обновляемому столбцу.

Попробуйте использовать этот запрос:

UPDATE EMPLOYEES 
SET JOB_ID = CASE WHEN FIRST_NAME IN ('VIJES','UNNATH') 
        THEN 'MANAGER' 
        ELSE 'TELLER' END 
WHERE FIRST_NAME IN ('VIJES', 'UNNATH', 'VINOD', 'RAKESH', 'ANANT', 'MUKESH') 
Смежные вопросы