Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Remplacer le caractère nul dans une chaîne en sql

L'astuce qui fonctionne est de COLLIER votre valeur en Latin1_General_BIN avant d'utiliser REPLACE et utilisez également nchar(0x00) COLLATE Latin1_General_BIN pour string_pattern .

REMPLACER ( expression_chaîne , motif_chaîne , 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
                                            ,'')    

Voici le résultat (utilisez Output To Text) :

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