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

Ganti karakter null dalam string di sql

Trik yang berhasil adalah MENGUMPULKAN nilai Anda ke Latin1_General_BIN sebelum menggunakan REPLACE dan juga menggunakan nchar(0x00) COLLATE Latin1_General_BIN untuk string_pattern .

REPLACE ( string_expression , string_pattern , string_replacement )

 select 
 [Terminated]      =          N'123' + nchar(0) + N'567'                                
,[Replaced with -] = REPLACE((N'123' + nchar(0) + N'567') COLLATE Latin1_General_BIN
                                          , nchar(0x00) COLLATE Latin1_General_BIN 
                                                 ,'-')      
,[Removed]        = REPLACE((N'123' + nchar(0) + N'567') COLLATE Latin1_General_BIN
                                    , nchar(0x00)      COLLATE Latin1_General_BIN
                                            ,'')    

Ini hasilnya (gunakan Output To Text):

Contains   Replaced with -   Removed
---------- ----------------- --------
123 567    123-567           123567


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara terbaik untuk mengubah indeks berkerumun (PK) di SQL 2005

  2. Apakah mungkin menjalankan prosedur tersimpan secara otomatis tanpa sql server Agent?

  3. Penggabungan baris dengan FOR XML, tetapi dengan banyak kolom?

  4. Haruskah saya menggunakan aturan CASCADE DELETE?

  5. Buat string biner nol, dengan panjang variabel