2013-08-06 27 views
11

làm thế nào tôi có thể loại bỏ tất cả NewLine từ một biến trong SQL Server?làm thế nào tôi có thể loại bỏ tất cả NewLine từ một biến trong SQL Server?

Tôi sử dụng SQL Server 2008 R2.

Tôi cần xóa tất cả NewLine trong một biến trong Lệnh T-Sql.

Ví dụ:

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

Và nó được in như thế này

12345 
     25487 
     154814 

Nhưng tôi muốn có được chuỗi như thế này

Tôi viết truy vấn này nhưng nó không hoạt động:

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

Dòng mới là 'CHAR (10) CHAR (13)'. Hãy thử xóa số đó – LuigiEdlCarno

+1

để xem những ký tự ascii nào là http://technet.microsoft.com/en-us/library/ms177545.aspx – Justin

+0

Có thể trùng lặp của [Thay thế dòng mới trong TSQL] (https://stackoverflow.com/ câu hỏi/951518/replace-a-newline-in-tsql) –

Trả lời

26

Bạn phải sử dụng truy vấn

Declare @A NVarChar(500); 

Set @A = N' 12345 
     25487 
     154814 '; 

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

Print @A; 
3

này Nếu bạn muốn nó trông giống hệt như trong đầu ra mẫu của bạn, sử dụng this hack:

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

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

PRINT @A 

Trước tiên, nó sẽ thay thế dòng mới của bạn rồi các khoảng trắng liên tiếp của bạn bằng một. Hãy chú ý rằng nó sẽ là khôn ngoan để url-mã hóa chuỗi đầu vào để tránh những bất ngờ khó chịu.

Các vấn đề liên quan