Използване на ASCII(RIGHT(ProductAlternateKey, 1))
можете да видите, че най-десният знак в ред 2 е символ за подаване на ред или Ascii символ 10.
Товане може да да бъдат премахнати с помощта на стандартния LTrim
RTrim
функции.
Можете обаче да използвате (REPLACE(ProductAlternateKey, CHAR(10), '')
Може също да искате да отчетете връщане на каретка и раздели. Тези три (подаване на ред, връщане на каретка и раздели) са обичайните виновници и могат да бъдат премахнати със следното:
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(ProductAlternateKey, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')))
Ако срещнете още знаци за празно пространство, които не могат да бъдат премахнати с горното, опитайте едно или всички от следните:
--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),'');
Този списък с потенциални бели интервали може да се използва за създаване на функция като :
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
Което след това можете да използвате по следния начин:
Select
dbo.CleanAndTrimString(ProductAlternateKey) As ProductAlternateKey
from DimProducts