Обновите то же поле в SQL на основе различных критериев в AS400 SQL - PullRequest
1 голос
/ 16 марта 2020

Недавно возник вопрос о том, возможно ли выполнить обновление для одного и того же поля в файле на основе 2 различных критериев. Мы ввели шаг для запуска 2 разных SQL в конце рабочего дня, поэтому первоначальная проблема была устранена. Однако, насколько мне известно по этому предмету, мне любопытно, можно ли сделать одно SQL утверждение, подобное приведенному ниже?

UPDATE MYFILE 
SET FIELD1 = 'ABC' where FIELD2 = '123' and FIELD3 = '456',
SET FIELD1 = 'XYZ' where FIELD2 = '789' and FIELD3 = '123'

Возможно ли что-то подобное в одном утверждении, или Вы должны разбить это на 2 утверждения, как мы это сделали?

Заранее спасибо!

1 Ответ

4 голосов
/ 16 марта 2020

Вы можете использовать выражение case в выражении update:

update myfile
set field1 = case
    when field2 = '123' and field3 = '456' then 'abc'
    when field2 = '789' and field3 = '123' then 'xyz'
end
where 
    (field2 = '123' and field3 = '456')
    or (field2 = '789' and field3 = '123')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...