2013-08-06 8 views
11

come posso rimuovere tutto NewLine da una variabile in SQL Server?come posso rimuovere tutto NewLine da una variabile in SQL Server?

Utilizzo SQL Server 2008 R2.

Ho bisogno di rimuovere tutto NewLine in una variabile in un comando T-Sql.

Ad esempio:

Declare @A NVarChar(500) 
Set @A = ' 12345 
     25487 
     154814 ' 
Print @A  

Ed è stampato come questo

12345 
     25487 
     154814 

ma voglio ottenere stringa come questa

Scrivo questa domanda, ma non funziona:

Set @A = Replace(@A,CHAR(13),' ') 
+2

NewLine è 'CHAR (10) CHAR (13)'. Prova a rimuovere quello – LuigiEdlCarno

+1

per vedere quali caratteri ascii sono http://technet.microsoft.com/en-us/library/ms177545.aspx – Justin

+0

Possibile duplicato di [Sostituisci una nuova riga in TSQL] (https://stackoverflow.com/ domande/951.518/replace-a-ritorno a capo-in-TSQL) –

risposta

26

È necessario utilizzare questa query

Declare @A NVarChar(500); 

Set @A = N' 12345 
     25487 
     154814 '; 

Set @A = Replace(@A,CHAR(13)+CHAR(10),' '); 

Print @A; 
3

Se si desidera guardare esattamente come nel tuo esempio di output, uso this hack:

DECLARE @A nvarchar(500) 
SET @A = ' 12345 
     25487 
     154814 ' 

SET @A = 
    replace(
    replace(
     replace(
     replace(@A, char(13)+char(10),' '), 
     ' ','<>'), 
    '><','') 
    ,'<>',' ') 

PRINT @A 

Sostituirà prima i numeri di nuova riga e quindi i tuoi spazi consecutivi con uno. Fai attenzione che sarebbe saggio url-encodare la stringa di input per evitare brutte sorprese.

Problemi correlati