web-dev-qa-db-fra.com

Comment couper une chaîne dans MS SQL plus ancienne que SQL Server 2017?

Dans SQL Server 2017, vous pouvez utiliser cette syntaxe, mais pas dans les versions antérieures:

SELECT TRIM(Names) FROM Customer;
108
Eric Labashosky
SELECT LTRIM(RTRIM(Names)) AS Names FROM Customer
204
Ben Hoffstein

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
57
Kibbee

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. :)

7
onedaywhen
SELECT LTRIM(RTRIM(Replace(Replace(Replace(name,'   ',' '),CHAR(13), ' '),char(10), ' ')))
from author
4
razon

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".
1
rahularyansharma

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]
0
Kai-Ove Böhnisch