Menggunakan ASCII(RIGHT(ProductAlternateKey, 1))
Anda dapat melihat bahwa karakter paling kanan di baris 2 adalah Umpan Baris atau Karakter Ascii 10.
Ini tidak bisa dihapus menggunakan LTrim
standard standar RTrim
fungsi.
Namun Anda dapat menggunakan (REPLACE(ProductAlternateKey, CHAR(10), '')
Anda mungkin juga ingin memperhitungkan pengembalian dan tab carriage. Ketiganya (Umpan baris, carriage return, dan tab) adalah penyebab biasa dan dapat dihapus dengan yang berikut:
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(ProductAlternateKey, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')))
Jika Anda menemukan karakter "spasi putih" lagi yang tidak dapat dihapus dengan cara di atas, coba salah satu atau semua cara di bawah ini:
--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),'');
Daftar karakter spasi putih potensial ini dapat digunakan untuk membuat fungsi seperti :
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
Yang kemudian dapat Anda gunakan sebagai berikut:
Select
dbo.CleanAndTrimString(ProductAlternateKey) As ProductAlternateKey
from DimProducts