2013-03-05 4 views
0

У меня есть таблица, в которой я хочу обновить столбец в целом. У меня есть это для конкатенации.Обновление каждой строки с помощью select concatenate

(COALESCE(f1,'')+';'+ COALESCE(f2,'')+';'+ COALESCE(f3,'')) 

Ну, когда я вставляю это в свой столбец, он добавляет новые столбцы и обновление просто терпит неудачу. Есть ли способ обновить значение внутри MS SQL и использовать его для изменения значения?

Благодаря

update dbo.tblGeoTable (CombinedEmail) 
select (COALESCE(f1,'')+';'+ COALESCE(f2,'')+';'+ COALESCE(f3,'')) 
from dbo.tblGeoTable 

Вот данные

F1 = [email protected]
F2 = [email protected] F3 = [email protected] CombinedEmail = f1 + F2 + f3, но мне нужно; . Там, чтобы разделить их, и мне нужно заменить его в текущей строке, что ИТС

ответ

2

Если я правильно понимаю, что вы хотите попробовать это

UPDATE tblGeoTable 
    SET CombinedEmail = COALESCE(f1,'')+';'+ COALESCE(f2,'')+';'+ COALESCE(f3,'') 

Вот sqlfiddle example

EDIT:

Если вы хотите добавить вместо замены значения в столбце CombinedEmail, вы можете сделать

UPDATE tblGeoTable 
    SET CombinedEmail = COALESCE(CombinedEmail,'') + ';' + COALESCE(f1,'')+';'+ COALESCE(f2,'')+';'+ COALESCE(f3,'') 
+0

Я могу сделать это уже, но мне нужно обновить текущий столбец таблицы с информацией, которая уже существует – Intelwalk

+0

Вы хотите сказать, что вы хотите «CombinedEmail = CombinedEmail + f1 + f2 + f3'? – peterm

+0

@Intelwalk Если нет, пожалуйста, предоставьте (в вашем исходном вопросе) пару строк выборочных данных и то, как вы хотите, чтобы ваш результат выглядел. – peterm

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