有没有办法只在列更新时才更新它,而当它不在一个多列更新查询中时保持null
原样?null
如下所示。(就像我们在 select 语句中如何使用 case 一样)
UPDATE users SET users.city = 'Dallas',
CASE
WHEN users.Global_id IS NULL
THEN
users.Global_id = '123'
END WHERE userid = '12312312'
上面的更新语句抛出ORA-00927: missing equal sign错误。
我找这个的原因是什么?我有一个运行类似上面查询的计划作业。users
如果您尝试更新 'not null' ,表中还存在一个触发器,该触发器将引发错误global_id
。所以当我遇到这个触发器时,我的工作失败了。
我有一个选择...将此更新查询拆分为两个.. 一个用于更新 city ,一个用于更新global_id
where global_id is null
。
但想知道这是否可以通过任何其他方式实现......任何想法都会受到赞赏。