web-dev-qa-db-fra.com

comment puis-je supprimer tous les NewLine d'une variable dans SQL Server?

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),' ')
12
Negar Jafarpisheh

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;
27
Ardalan Shahgholi

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.

3

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!

2
user11278100