根据AS400 SQL中的不同条件更新SQL中的同一字段



最近出现了一个问题,即是否可以根据两个不同的标准对文件中的同一字段执行更新。我们引入了一个步骤,在一天结束处理时运行两个不同的SQL,因此最初的问题得到了缓解。然而,就我自己对这个主题的了解而言,我很好奇是否可以做一个类似于下面的SQL语句?

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

这样的事情在一个语句中可能发生吗?还是你必须像我们最终所做的那样,把它分解成两个语句?

提前感谢!

您可以在update语句中使用case表达式:

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')

相关内容

  • 没有找到相关文章

最新更新