Конкатные значения в postgresql без нулевых значений - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь объединить четыре столбца в один столбец. я использую coalease для замены нуля как пробела, но при объединении. если конкретный столбец имеет нулевое значение, тогда мне не нужны пробелы в объединенных результатах

UPDATE vt_pc_incremental_gold_contact SET "Concatenated Phone Number" = 
trim(coalesce("Contact Phone Country Code",'')||' '||trim(coalesce("Contact Phone Area Code",''))||' '||trim(coalesce("Contact Phone Number",''))
||' '||trim(coalesce("Contact Phone Extension",'')));

Мне нужны такие результаты

enter image description here

Ответы [ 3 ]

2 голосов
/ 27 февраля 2020

Вы можете использовать функцию replace() для замены этих двойных spaces.

UPDATE vt_pc_incremental_gold_contact SET "Concatenated Phone Number" = 
replace(trim(coalesce("Contact Phone Country Code",'')||' '||trim(coalesce("Contact Phone Area Code",''))||' '||trim(coalesce("Contact Phone Number",''))
||' '||trim(coalesce("Contact Phone Extension",''))), '  ', ' ');
0 голосов
/ 27 февраля 2020

Использовать concat_ws() это будет правильно работать с пустыми строками и пробелами

UPDATE vt_pc_incremental_gold_contact 
  SET "Concatenated Phone Number" = concat_ws(' ', "Contact Phone Country Code", "Contact Phone Area Code", "Contact Phone Number", "Contact Phone Extension");
0 голосов
/ 27 февраля 2020

Пользователь "concat_ws". Это решит вашу проблему.

UPDATE vt_pc_incremental_gold_contact SET "Concatenated Phone Number" = 
concat_ws(' ',trim("Contact Phone Country Code")
   ,trim("Contact Phone Area Code"),trim("Contact Phone Number"),trim("Contact Phone Extension"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...