Mit ASCII(RIGHT(ProductAlternateKey, 1))
Sie können sehen, dass das Zeichen ganz rechts in Zeile 2 ein Zeilenvorschub oder ASCII-Zeichen 10 ist.
Dies kann nicht mit dem Standard LTrim
entfernt werden RTrim
Funktionen.
Sie könnten jedoch (REPLACE(ProductAlternateKey, CHAR(10), '')
verwenden
Möglicherweise möchten Sie auch Wagenrückläufe und Tabulatoren berücksichtigen. Diese drei (Zeilenvorschübe, Wagenrückläufe und Tabulatoren) sind die üblichen Übeltäter und können mit dem Folgenden entfernt werden:
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(ProductAlternateKey, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')))
Wenn Sie auf weitere "Leerzeichen" stoßen, die mit den oben genannten nicht entfernt werden können, versuchen Sie es mit einem oder allen der folgenden:
--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),'');
Diese Liste möglicher Leerzeichen könnte verwendet werden, um eine Funktion wie :
zu erstellenCreate 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
Welche Sie dann wie folgt verwenden könnten:
Select
dbo.CleanAndTrimString(ProductAlternateKey) As ProductAlternateKey
from DimProducts