2013-03-05 2 views
0

J'ai une table que je veux mettre à jour une colonne dans le tout. J'ai ceci pour la concaténation.Mise à jour de chaque ligne Avec select concaténer

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

Eh bien quand j'insérer cela dans ma colonne, il ajoute de nouvelles colonnes et la mise à jour échoue juste. Est-il possible de mettre à jour une valeur dans MS SQL et de l'utiliser pour changer une valeur?

Merci

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

Voici les données

F1 = [email protected]
F2 = F3 = [email protected] [email protected] CombinedEmail = f1 + f2 + f3, mais j'ai besoin de; . Là pour les séparer et je besoin remplacé dans la ligne actuelle que son dans

Répondre

2

Si je comprends bien ce que vous voulez essayer

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

est ici sqlfiddle example

EDIT:

Si vous souhaitez ajouter au lieu de remplacer aux valeurs dans la colonne CombinedEmail vous pouvez faire

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

Je peux le faire déjà, mais je dois pouvoir mettre à jour ma colonne de table actuelle avec des informations qui sont déjà là – Intelwalk

+0

Vous voulez dire que vous voulez 'CombinedEmail = CombinedEmail + f1 + f2 + f3'? – peterm

+0

@Intelwalk Si ce n'est pas le cas, veuillez fournir (dans votre question initiale) quelques lignes de données d'exemple et comment vous voulez que votre sortie ressemble. – peterm

Questions connexes