使用select concatenate更新每一行

时间:2013-03-05 04:53:43

标签: sql sql-server

我有一个表,我想在整个事情中更新一列。我有这个用于连接。

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

当我将此插入我的列时,它会添加新列并更新失败。有没有办法更新MS SQL中的值并使用它来更改值?

由于

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

这是数据

F1 = f1email@email.com
F2 = f2email@email.com F3 = f3email@email.com CombinedEmail = f1 + f2 + f3,但我需要;在那里分开它们,我需要在它的当前行中替换它。

1 个答案:

答案 0 :(得分:2)

如果我理解你想要的话,试试这个

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

这是 sqlfiddle example

编辑:

如果要添加而不是替换CombinedEmail列中的值,您可以执行

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