Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara menghapus karakter spasi putih dari string di SQL Server

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah MS SQL Server antara menyertakan batas jangkauan?

  2. Bagaimana Anda membaca kolom XML di SQL Server 2008?

  3. Apa pro dan kontra untuk menjaga SQL di Stored Procs versus Code

  4. T-SQL:Bagaimana Cara Memilih Nilai dalam Daftar Nilai yang TIDAK DI Tabel?

  5. Menggunakan SSIS, Bagaimana cara menemukan kota dengan populasi terbesar?