Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ersetzen Sie das Nullzeichen in einer Zeichenfolge in SQL

Der Trick, der funktioniert, besteht darin, Ihren Wert mit Latin1_General_BIN ZUSAMMENZUSTELLEN vor der Verwendung von REPLACE und verwenden Sie außerdem nchar(0x00) COLLATE Latin1_General_BIN für 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
                                            ,'')    

Hier ist das Ergebnis (verwenden Sie Output To Text):

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