仅当多个字段中的先前值不为null时,才更新特定字段

时间:2020-05-25 18:41:23

标签: postgresql

我正在更新a,b,c,d值以及其中要比较id的where条件。仅当字段'b'的先前值不为null时,才需要更新。 不过,我需要在同一查询中更新其余字段。

我当前的查询就像

update demo_table set a='str1', b='str2', c=112, d='str3' where id=191;

谁能建议实现此目标的方法。感谢adavance.postgre

1 个答案:

答案 0 :(得分:1)

您只需在您的SET子句中添加一个CASE条件:

UPDATE demo_table
SET
  a = 'str1',
  b = CASE b IS NOT NULL WHEN true THEN 'str2' ELSE NULL END,
  c = 112,
  d = 'str3'
WHERE id = 191;