2013-03-05 48 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