Dans SQL Server 2017, vous pouvez utiliser cette syntaxe, mais pas dans les versions antérieures:
SELECT TRIM(Names) FROM Customer;
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer
Pour couper à droite, utilisez:
SELECT RTRIM(Names) FROM Customer
Pour couper à gauche, utilisez:
SELECT LTRIM(Names) FROM Customer
Pour couper des deux côtés, utilisez:
SELECT LTRIM(RTRIM(Names)) FROM Customer
Je suppose qu'il s'agit d'un exercice ponctuel de nettoyage des données. Une fois cela fait, assurez-vous d’ajouter des contraintes de base de données pour éviter les mauvaises données par exemple
ALTER TABLE Customer ADD
CONSTRAINT customer_names__whitespace
CHECK (
Names NOT LIKE ' %'
AND Names NOT LIKE '% '
AND Names NOT LIKE '% %'
);
Pensez également à ne pas autoriser d’autres caractères (tabulation, retour à la ligne, saut de ligne, etc.) susceptibles de poser problème.
C’est peut-être aussi le bon moment pour scinder ces noms en family_name
, first_name
, etc. :)
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,' ',' '),CHAR(13), ' '),char(10), ' ')))
from author
dans SQL Server 2008 R2 avec expression ssis, nous avons la fonction trim.
SQL Server Integration Services (SSIS) est un composant du logiciel de base de données Microsoft SQL Server qui peut être utilisé pour effectuer une large gamme de tâches de migration de données.
vous pouvez trouver la description complète sur ce lien
http://msdn.Microsoft.com/en-us/library/ms139947.aspx
mais cette fonction a une limitation en elle-même qui est aussi mentionnée par msdn sur cette page . mais c'est dans sql server 2008 r2
TRIM(" New York ") .The return result is "New York".
Version étendue de "REPLACE":
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(RTRIM(LTRIM(REPLACE("Put in your Field name", ' ',' '))),'''',''), CHAR(9), ''), CHAR(10), ''), CHAR(13), ''), CHAR(160), '') [CorrValue]