我正在使用PostgreSQL 9.3。
我在表中有一个varchar
列,可以为null,我想根据它的值更新它是否为null。
我没有设法执行一个以String作为参数的函数,并更新这样的值:
如果列为null,则该函数连接当前字符串值,逗号和作为参数给出的字符串,否则它只是在当前字符串值的末尾添加字符串(不带逗号)。
那么如何根据要更新的列值制作不同的更新?
答案 0 :(得分:1)
您可以使用case
语句有条件地更新列:
update the_table
set the_colum = case
when the column is null then 'foobar'
else the_column||', '||'foobar'
end
答案 1 :(得分:1)
另一种方法
UPDATE foo
SET bar = COALESCE(NULLIF(concat_ws(', ', NULLIF(bar, ''), NULLIF('a_string', '')), ''), 'a_string')