TSQL 2008 à l'Aide d'LTrim(RTrim et ont encore des places dans les données
J'ai des données que je le nettoyage dans une vieille table de données avant de le déplacer vers un nouveau. L'un des champs avec des espaces dans la colonne de droite & à gauche. J'ai écrit le code suivant à l'adresse de ce et encore espaces?? L'essentiel des données est propre lorsque vous utilisez ce code, mais pour quelque raison il y a des espaces avant RT adresses... quelqu'un d'autre A eu ce type de problème?
,CASE
WHEN PropStreetAddr IS NOT NULL
THEN (CONVERT(VARCHAR(28),PropStreetAddr))
WHEN PropStreetAddr is NOT NULL Then (Select LTrim(RTrim(PropStreetAddr)) As PropStreetAddr)
ELSE NULL END as 'PROPERTY_STREET_ADDRESS'
Exemple de sortie de données:
1234 20th St
RT 1 BOX 2
560 King St
610 Nowland Rd
RT 1
1085 YouAreHere Ln
RT 24 Box 12
- Peut-être qu'ils ne sont pas les espaces...
- Double de Supprimer la fuite espace vide dans un champ de contenu - voir ma réponse pour savoir comment le supprimer non-ASCII imprimables
Vous devez vous connecter pour publier un commentaire.
Voici l'expression qui va travailler. Je suppose que il n'y a pas de non-visible de contenu. Vous devez continuer d'utiliser @OMG Poneys recommandation si vous pensez que cela. Et je pense que le PATINDEX expression peut être ajoutée à cette expression si vous devez traiter la non-visible de contenu.
SQL Server AFFAIRE ne traite qu'une clause when puis les pauses. Afin de vous éviter d'arriver à la seconde conversion de données. Aussi, toutes les valeurs NULL permet de convertir à la valeur NULL lorsque vous utilisez le LTRIM et RTRIM fonctions. Donc, vous n'avez pas besoin de test pour elle, sauf si vous voulez faire quelque chose avec les valeurs Null.
Donc, essayez ceci:
J'ai eu le même problème de l'habillage de la chaîne dans un CAST(x, varbinary(64)) montre l'hexagone et à partir de ce que je vois A000 - je crois que c'est l'espace insécable.
À supprimer, essayez ceci (UNICODE);
CAST(x AS VARBINARY(64))
est le meilleur conseil. Comparaison rapide des différences dans le format hexadécimal fait toute la différence.Utilisation:
REPLACE(PropStreetAddr, ' ', ' ')
commentaire Stupide mange des espaces - devrait être deux dans la première, celle de la seconde.J'ai une situation similaire, j'ai d'abord pensé que le LTRIM et RTRIM fonctions ne fonctionnent pas correctement. Cependant, une fois je l'ai testé et je pouvais voir qu'il n'était pas un bon caractère espace blanc (le caractère réel peut être différent de votre fautif non imprimable de caractères) à l'aide de:
J'ai trouvé que le personnage soit nommé 160, alors j'ai fait un remplacement comme:
Espère que cela aide quelqu'un