Как я могу удалить всю NewLine из переменной в SQL Server?

как я могу удалить всю NewLine из переменной в SQL Server?

Я использую SQL Server 2008 R2.

Мне нужно удалить всю NewLine в переменной в команде T-Sql.

Например:

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

И он напечатан следующим образом

 12345
        25487
        154814 

Но я хочу получить строку, подобную этой

12345 25487 154814

Я пишу этот запрос, но он не работает:

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

Ответ 1

Вы должны использовать этот запрос

Declare @A NVarChar(500);

Set @A = N' 12345
        25487
        154814 ';

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

Print @A;

Ответ 2

Если вы хотите, чтобы он выглядел точно так же, как в вашем примере, используйте этот хак:

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

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

PRINT @A

Сначала он заменит вашу новую строку, а затем ваши последовательные пробелы на одну. Обратите внимание, что было бы разумно кодировать входную строку url, чтобы избежать неприятных сюрпризов.