Utilisation de ASCII(RIGHT(ProductAlternateKey, 1))
vous pouvez voir que le caractère le plus à droite de la ligne 2 est un saut de ligne ou un caractère Ascii 10.
Cela ne peut pas être supprimé à l'aide du LTrim
standard RTrim
fonctions.
Vous pouvez cependant utiliser (REPLACE(ProductAlternateKey, CHAR(10), '')
Vous pouvez également tenir compte des retours chariot et des tabulations. Ces trois (sauts de ligne, retours chariot et onglets) sont les coupables habituels et peuvent être supprimés avec ce qui suit :
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(ProductAlternateKey, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')))
Si vous rencontrez d'autres caractères "espaces blancs" qui ne peuvent pas être supprimés avec ce qui précède, essayez une ou toutes les solutions ci-dessous :
--NULL
Replace([YourString],CHAR(0),'');
--Horizontal Tab
Replace([YourString],CHAR(9),'');
--Line Feed
Replace([YourString],CHAR(10),'');
--Vertical Tab
Replace([YourString],CHAR(11),'');
--Form Feed
Replace([YourString],CHAR(12),'');
--Carriage Return
Replace([YourString],CHAR(13),'');
--Column Break
Replace([YourString],CHAR(14),'');
--Non-breaking space
Replace([YourString],CHAR(160),'');
Cette liste d'espaces blancs potentiels pourrait être utilisée pour créer une fonction telle que :
Create Function [dbo].[CleanAndTrimString]
(@MyString as varchar(Max))
Returns varchar(Max)
As
Begin
--NULL
Set @MyString = Replace(@MyString,CHAR(0),'');
--Horizontal Tab
Set @MyString = Replace(@MyString,CHAR(9),'');
--Line Feed
Set @MyString = Replace(@MyString,CHAR(10),'');
--Vertical Tab
Set @MyString = Replace(@MyString,CHAR(11),'');
--Form Feed
Set @MyString = Replace(@MyString,CHAR(12),'');
--Carriage Return
Set @MyString = Replace(@MyString,CHAR(13),'');
--Column Break
Set @MyString = Replace(@MyString,CHAR(14),'');
--Non-breaking space
Set @MyString = Replace(@MyString,CHAR(160),'');
Set @MyString = LTRIM(RTRIM(@MyString));
Return @MyString
End
Go
Que vous pourriez ensuite utiliser comme suit :
Select
dbo.CleanAndTrimString(ProductAlternateKey) As ProductAlternateKey
from DimProducts