comment puis-je supprimer tous les NewLine d'une variable dans SQL Server?
J'utilise SQL Server 2008 R2.
J'ai besoin de supprimer tous les NewLine dans une variable dans une commande T-Sql.
Par exemple :
Declare @A NVarChar(500)
Set @A = ' 12345
25487
154814 '
Print @A
Et il a imprimé comme ça
12345
25487
154814
Mais je veux obtenir une chaîne comme celle-ci
12345 25487 154814
J'écris cette requête mais ça ne marche pas:
Set @A = Replace(@A,CHAR(13),' ')
Vous devez utiliser cette requête
Declare @A NVarChar(500);
Set @A = N' 12345
25487
154814 ';
Set @A = Replace(@A,CHAR(13)+CHAR(10),' ');
Print @A;
Si vous voulez qu'il ressemble exactement à votre exemple de sortie, utilisez ce hack :
DECLARE @A nvarchar(500)
SET @A = ' 12345
25487
154814 '
SET @A =
replace(
replace(
replace(
replace(@A, char(13)+char(10),' '),
' ','<>'),
'><','')
,'<>',' ')
PRINT @A
Il remplacera d'abord votre nouvelle ligne puis vos espaces consécutifs par un. Faites attention qu'il serait sage de coder en url la chaîne d'entrée pour éviter les mauvaises surprises.
Replace(@A,CHAR(13)+CHAR(10),' ')
n'a pas supprimé tous les espaces pour moi.
Au lieu de cela, j'ai utilisé
replace(replace(@A, char(13),N' '),char(10),N' ')
Ça marche bien!