有没有办法只在它是null
时更新一列,并且当它不是null
时保留在一个多列更新查询中? 像下面的东西。 (就像我们如何使用select语句的情况下)更新列只有当它为空时否则不更新
UPDATE users SET users.city = 'Dallas',
CASE
WHEN users.Global_id IS NULL
THEN
users.Global_id = '123'
END WHERE userid = '12312312'
上述更新语句抛出ORA-00927:缺少等号错误。
我之所以在寻找这个的原因? 我有一个计划作业运行类似上面的查询。 并且users
表中还存在一个触发器,如果您尝试更新'not null'global_id
将会引发错误。所以当我遇到这个触发器时,我的工作就失败了。
我有一个选项...将此更新查询分为两个..一个更新城市,一个更新global_id
,其中global_id is null
。
但想知道这是否可以通过任何其他方式实现...任何想法将不胜感激。
猜我可以做到这一点。如果global_id为空然后(更新用户设置users.city ='达拉斯'和users.global_id ='123')其他(更新用户设置users.city ='达拉斯')任何其他想法是值得欢迎的。 – Jeevan