如果列初始值为null,则将文本附加到PostgreSQL中的列数据

时间:2015-05-11 08:05:54

标签: postgresql

如果列初始值为null,则将文本附加到PostgreSQL中的列数据。 它没有改变价值。

1 个答案:

答案 0 :(得分:9)

目前还不清楚你想要实现的目标,但是:

如果列的值为null,则您无法"#34;追加"一个值,因为任何涉及null的表达式都会产生null(null||'foo'null)。在这种情况下,您只需将null值替换为新值:

update the_table
  set the_column = 'new value'
where the_column is null;

如果使用" 初始值为空"你的意思是如果" 当前值是一个空字符串",那么你会这样做:

update the_table
  set the_column = the_column || 'this will be appended'
where the_column = '';

与...相同:

update the_table
  set the_column = 'this will be appended'
where the_column = '';

null''是不同的事情

另一种选择是使用concat()函数,它会隐式将null值视为空字符串:

update the_table
  set the_column = concat(the_column, 'this will be appended')
where ...