2015-05-11 4 views

ответ

6

Это довольно неясно, что вы пытаетесь достичь, но:

Если значение столбца является null вы не можете «добавить» значение для него, потому что любое выражение, содержащее null дает нуль (null||'foo' является 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 ... 
+1

Опять же, если это нуль или пустая строка, то конечный результат так же, как «|| «добавлено» будет просто «добавлено». Но зависит от фактических потребностей OPs. –

+1

@SamiKuhmonen: вы правы. Я просто хотел пояснить, что добавление значения «null» не будет работать должным образом. –

Смежные вопросы