Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Supprimer le caractère de fin :d'une ligne dans une table SQL

Vous pouvez utiliser le STUFF fonction qui remplace des parties d'une chaîne. Dans ce cas, il s'agit du dernier caractère.

UPDATE tbl
SET COL = stuff(COL, len(COL), 1, '')
WHERE COL > ''

Ou utilisez GAUCHE, en prenant tout sauf le dernier. La condition COL> '' garantit que LEFT aura une longueur valide. LEFT est un raccourci dans SQL Server et semble être implémenté en tant que SUBSTRING ( voir plus bas)*

UPDATE tbl
SET COL = LEFT(COL, len(COL) -1)
WHERE COL > ''

Si vous avez à la fois des données avec et sans le point-virgule final, vous pouvez les cibler spécifiquement

UPDATE tbl
SET COL = LEFT(COL, len(COL) -1)
WHERE RIGHT(COL,1) = ':'

Voici le plan de requête pour une requête utilisant LEFT (seules les 3 premières lignes du plan de texte sont affichées)

select LEFT(text, LEN(text)-1), * from master..syscomments