2013-03-14 4 views
0

J'ai une table dans SQL Server appelée Settings avec une colonne settingValue qui contient des valeurs séparées par des virgules.Mettre à jour une colonne séparée par des virgules dans SQL Server 2008

Exemple de données pour cette colonne:

0, 0 
US, US 
[email protected], [email protected] 

Je veux écrire une requête de mise à jour de telle sorte que la colonne settingValue affiche une seule valeur qui est elle devrait se traduire par

0 
US 
[email protected] 

Je ne sais pas où début dois-je trouver la virgule (,) d'abord, puis tronquer la déclaration?

+4

Ne pas stocker des valeurs séparées par des virgules dans une colonne. Re-concevoir votre modèle de données. –

+0

Je ne stocke pas je veux le supprimer quelqu'un d'autre a entré ces enregistrements en double – user580950

+0

Ce sont 3 enregistrements distincts – user580950

Répondre

4

Si vous souhaitez supprimer tout après la première virgule, vous pouvez utiliser:

update yourtable 
set col = substring(col, 1, charindex(',', col)-1) 
where charindex(',', col) > 0 -- only update the rows with a comma 

Voir SQL Fiddle with Demo

+0

Ou juste commencer à partir de 0 et pas besoin du -1 ? – JodyT

+0

@JodyT juste une habitude de commencer à 1. :) – Taryn

+0

Je reçois cette erreur quand j'ai essayé Msg 537, Niveau 16, État 3, Ligne 1 Paramètre de longueur non valide passé à la fonction GAUCHE ou SUBSTRING. La déclaration a été terminée. – user580950

Questions connexes