web-dev-qa-db-fra.com

Est-il possible de couper toutes les valeurs d'une colonne dans une seule instruction?

J'ai une table dans une base de données SQL (MS) qui a une colonne Id (identité, int) et une colonne Nom (varchar (250)). Cependant, les valeurs dans la colonne nom contiennent des espaces de début et de fin (assez aléatoires) car je pense qu'ils ont été coupés et collés à partir de "quelque chose d'autre" (aucune idée de quoi!).

Est-il possible dans T-SQL de faire ce qui suit:

update MyTable set Name = trim(name)

et le faire mettre à jour toutes les colonnes Nom avec la valeur rognée?

20
BlueChippy

MS SQL n'a pas de fonction de découpage. Vous devrez utiliser rTrim et lTrim ensemble.

update MyTable set Name = lTrim(rTrim(name))
60
Barry Jordan

Essayer

update MyTable set Name = LTRIM(RTRIM((name))
9
StuartLC

Vous pouvez essayer ceci:

UPDATE MyTable
SET Name = LTRIM(RTRIM(Name))

Jetez un oeil ici pour créer une fonction dans votre base de données pour l'utiliser plus rapidement

3
Marco

Dans SQL Server, il n'y a que RTRIM et LTRIM, mais vous pouvez les utiliser ensemble:

update MyTable set Name = RTRIM(LTRIM((name))
2
cjk

Essaye ça:

UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')

1
silentgut

Pas tout à fait - il n'y a pas de fonction TRIM() disponible, vous devez donc utiliser RTRIM() et LTRIM() (trim droit et gauche, respectivement):

UPDATE MyTable set Name = rtrim(ltrim(name))
0
Widor