Quelle est la meilleure façon de supprimer tous les espaces d'une chaîne dans SQL Server 2008?
LTRIM(RTRIM(' a b '))
supprimerait tous les espaces à droite et à gauche de la chaîne, mais je dois également supprimer l'espace au milieu.
sql
sql-server
string
whitespace
trim
Ananth
la source
la source
Réponses:
Remplacez-le simplement;
Edit: Juste pour clarifier; c'est un remplacement global, il n'y a pas besoin de
trim()
s'inquiéter de plusieurs espaces pourchar
ouvarchar
:Résultat
la source
J'utiliserais un REMPLACER
REMPLACER
la source
S'il s'agit d'une mise à jour sur une table, il vous suffit d'exécuter cette mise à jour plusieurs fois jusqu'à ce qu'elle affecte 0 lignes.
la source
REPLACE()
fonction :la source
Référence tirée de ce blog:
Tout d'abord, créez un exemple de table et de données:
Script pour sélectionner une chaîne sans espaces supplémentaires:
Résultat:
la source
100% de travail
Vous pouvez utiliser
"column_name"
oucolumn_name
Merci
Subroto
la source
select replace(replace(replace(varcharColumn,char(13),''),char(10),''),' ','')
pour supprimer tous les sauts de ligne et les espaces d'unevarchar
colonne. Si j'ai utilisé '\ n' et '\ r' au lieu de char (13) et char (10) cela n'a pas fonctionné.t-sql replace http://msdn.microsoft.com/en-us/library/ms186862.aspx
remplacer (val, '', '')
la source
S'il y a plusieurs espaces blancs dans une chaîne, le remplacement peut ne pas fonctionner correctement. Pour cela, la fonction suivante doit être utilisée.
Exemple:
Production:
la source
Cela fait l'affaire de supprimer les espaces sur les chaînes:
la source
Juste au cas où vous auriez besoin de TRIM espaces dans toutes les colonnes, vous pouvez utiliser ce script pour le faire dynamiquement:
la source
si vous souhaitez supprimer des espaces, - et un autre texte de la chaîne, utilisez ce qui suit:
Supposons que vous ayez un numéro de mobile dans votre tableau comme '718-378-4957' ou '7183784957' et que vous souhaitiez remplacer et obtenir le numéro de mobile, puis utilisez le texte suivant.
Résultat: - 7183784957
la source
Juste un conseil, au cas où vous rencontriez des problèmes avec la fonction de remplacement, vous pourriez avoir le type de données défini sur nchar (auquel cas il s'agit d'une longueur fixe et cela ne fonctionnera pas).
la source
Pour compléter toutes les réponses ci-dessus, il existe des articles supplémentaires sur StackOverflow sur la façon de gérer TOUS les espaces blancs (voir https://en.wikipedia.org/wiki/Whitespace_character pour une liste complète de ces caractères):
la source
replace (replace (column_Name, CHAR (13), ''), CHAR (10), '')
la source
cela m'est utile:
.
la source
J'ai eu ce problème aujourd'hui et remplacer / trim a fait l'affaire .. voir ci-dessous.
avant et après :
la source
LTRIM
&RTRIM
?Pour supprimer les espaces dans une chaîne de gauche et de droite. Pour supprimer l'espace en utilisation moyenne
Replace
.Vous pouvez utiliser
RTRIM()
pour supprimer les espaces de droite etLTRIM()
pour supprimer les espaces de gauche, donc les espaces gauche et droit supprimés comme suit:la source
Syntaxe pour remplacer un caractère spécifique:
Par exemple, dans la chaîne "HelloReplaceThingsGoing" Remplacer le mot est remplacé par Comment
la source
Une version fonctionnelle (udf) qui supprime les espaces, cr, lf, tabulations ou configurables.
Résultat: '234asdfwefwef3x'
la source
Pour une raison quelconque, le remplacement ne fonctionne qu'avec une chaîne à chaque fois. J'avais une chaîne comme celle-ci " Test MSP " et je veux ne laisser qu'un seul espace.
J'ai utilisé l'approche de @Farhan, mais avec quelques modifications:
Ensuite, je lance ma mise à jour comme ça
Ensuite, j'ai obtenu ce résultat: Test MSP
Publier ici si au cas où quelqu'un en aurait besoin comme moi.
Fonctionnant sur: Microsoft SQL Server 2016 (SP2)
la source
Vérifiez et essayez le script ci-dessous (Unit Tested) -
la source
Il semble que tout le monde continue de se référer à une seule fonction REPLACE. Ou même de nombreux appels d'une fonction REMPLACER. Mais lorsque vous avez une sortie dynamique avec un nombre inconnu d'espaces, cela ne fonctionnera pas. Quiconque traite régulièrement ce problème sait que REPLACE ne supprimera qu'un seul espace, PAS TOUS, comme il se doit. Et LTRIM et RTRIM semblent avoir le même problème. Laissez-le à Microsoft. Voici un exemple de sortie qui utilise une boucle WHILE pour supprimer TOUTES les valeurs CHAR (32) (espace).
Voici la sortie du code ci-dessus:
Maintenant, pour aller plus loin et l'utiliser dans une instruction UPDATE ou SELECT, changez-le en udf.
Utilisez ensuite la fonction dans une instruction SELECT ou INSERT:
la source