web-dev-qa-db-ja.com

SQL Serverの変数からすべてのNewLineを削除するにはどうすればよいですか?

sQL Serverの変数からすべてのNewLineを削除するにはどうすればよいですか?

SQL Server 2008 R2を使用しています。

T-Sqlコマンドの変数内のすべてのNewLineを削除する必要があります。

例えば ​​:

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

そして、このように印刷しました

 12345
        25487
        154814 

しかし、私はこのような文字列を取得したい

12345 25487 154814

私はこのクエリを書きますが、うまくいきません:

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

このクエリを使用する必要があります

Declare @A NVarChar(500);

Set @A = N' 12345
        25487
        154814 ';

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

Print @A;
27

サンプル出力とまったく同じようにする場合は、 this hack を使用します。

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

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

PRINT @A

最初に改行を置き換え、次に連続するスペースを1つに置き換えます。厄介な驚きを避けるために、入力文字列をURLエンコードするのが賢明であることに注意してください。

Replace(@A,CHAR(13)+CHAR(10),' ')はすべてのスペースを削除しませんでした。

代わりに私は使用しました

replace(replace(@A, char(13),N' '),char(10),N' ')

これはうまくいきます!

2
user11278100