2016-09-14 5 views
0

すべてのスペースを置き換えることが可能かどうか(およびその方法)は分かります。SqlServer、すべてのスペースシーケンスを1つだけに置き換える方法

Select 
    replace(
    replace(
     replace(
     replace('jkdhsf  sdf jkdsf d fsjlk ds d jldksf dsf dòkjdkl ò', '  ',1) 
     , ' ',1) 
    , ' ',1) 
    , ' ',1) ... 
:私は、私は次のように置き換える入れ子に使用することができることを知っている

'jkdhsf sdf jkdsf d fsjlk ds d jldksf dsf dòkjdkl ò'

:一つだけのよう 'jkdhsf sdf jkdsf d fsjlk ds d jldksf dsf dòkjdkl ò'

私の目標は、中に複数のspcesを凝縮さ:

は、私は次の文字列を持っています

しかし、私は自分の文字列にあるスペースの最大数を知りません。

だから、私は私がのSQLServer 2008 R2を使用し

...各スペースの繰り返しにマッチする正規表現を使用してその機能を置き換えるようなものを考えています。

+0

あなたに必要な出力は何ですか? –

+0

TSQLは正規表現パターンをサポートしておらず、TSQLパターンには数量サポートがありません。カスタムCLR関数が必要です。 –

+1

http://stackoverflow.com/questions/10432086/remove-all-spaces-from-a-string-in-sql-server – GuidoG

答えて

0

これを試してみてください:

DECLARE @test varchar(1000) 
SET @test = 'jkdhsf sdf  jkdsf d  fsjlk ds d jldksf dsf dòkjdkl ò' 

WHILE CHARINDEX(' ',@test ) > 0 
BEGIN 
    SET @test = REPLACE(@test, ' ', ' ') 
END 

SELECT @test 
+0

それはすべてのスペースを '1'に置き換えます。 OPはスペースを正規化し、別の値で置き換える必要はありません。 – gofr1

+0

私は答えを更新しました –

+0

この回答との違いはありますか? http://stackoverflow.com/a/2455880/2893376 – gofr1

関連する問題