2013-03-05 50 views
0

我有一张表,我想在整个事情中更新一列。我有这个连接。使用select连接更新每一行

(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

编辑:

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

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

我可以做到这一点了,但我需要能够更新我的当前表列的信息 – Intelwalk 2013-03-05 05:26:40

+0

你的意思是你想那已经有'CombinedEmail = CombinedEmail + F1 + F2 + f3'? – peterm 2013-03-05 05:30:56

+0

@Intelwalk如果不是,请提供(在您的原始问题中)几行样本数据以及您希望输出的样子。 – peterm 2013-03-05 05:37:27