Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thay thế ký tự null trong một chuỗi trong sql

Mẹo hiệu quả là THUỘC giá trị của bạn thành Latin1_General_BIN trước khi sử dụng REPLACE và cũng sử dụng nchar (0x00) COLLATE Latin1_General_BIN cho 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
                                            ,'')    

Đây là kết quả (sử dụng 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. Cài đặt SQL Server Business Intelligence Development Studio

  2. Sắp xếp dựa trên các bản ghi tiếp theo và trước đó trong SQL

  3. Làm cách nào để chuyển đổi tích tắc sang định dạng ngày tháng?

  4. Cách chỉ trả lại giá trị số trong SQL Server

  5. Thay thế lần xuất hiện đầu tiên của chuỗi con trong một chuỗi trong SQL