2013-08-06 7 views
11

Jak mogę usunąć wszystkie NewLine ze zmiennej w SQL Server?jak mogę usunąć wszystkie NewLine ze zmiennej w SQL Server?

Używam SQL Server 2008 R2.

Potrzebuję usunąć całą NewLine ze zmiennej w komendzie T-Sql.

Na przykład:

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

I drukowane jak ten

12345 
     25487 
     154814 

Ale chcę uzyskać ciąg jak ten

piszę tę kwerendę, ale to nie działa:

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

NewLine to "CHAR (10) CHAR (13)". Spróbuj usunąć tę – LuigiEdlCarno

+1

, aby zobaczyć, jakie znaki ASCII to http://technet.microsoft.com/en-us/library/ms177545.aspx – Justin

+0

Możliwy duplikat [Replace a newline in TSQL] (https://stackoverflow.com/ pytania/951518/replace-a-newline-in-tsql) –

Odpowiedz

26

Musisz użyć tej kwerendy

Declare @A NVarChar(500); 

Set @A = N' 12345 
     25487 
     154814 '; 

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

Print @A; 
3

Jeśli chcesz, aby wyglądać dokładnie tak, jak w swoim wyjściu próbki, należy this hack:

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

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

PRINT @A 

Najpierw zastąpi linię nowego wiersza, a następnie kolejne. Zwróć uwagę, że dobrze byłoby zakodować kod wejściowy, aby uniknąć nieprzyjemnych niespodzianek.