SqlServer,如何只用一个替换所有空格序列

时间:2016-09-14 11:51:16

标签: sql-server regex

我知道是否有可能(以及如何)只用一个替换所有空格序列。

我有以下字符串: 'jkdhsf sdf jkdsf d fsjlk ds d jldksf dsf dòkjdkl ò'

我的目标是只在一个像:

中缩小多个spces

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

我知道我可以使用嵌套替换,如:

Select 
  replace(
    replace(
      replace(
        replace('jkdhsf     sdf jkdsf  d fsjlk ds   d jldksf dsf    dòkjdkl ò', '     ',1)
      , '    ',1)
     , '   ',1)
    , '  ',1) ...

但我不知道我的字符串中有多少空格。

所以,我正在考虑使用匹配每个空间重复的正则表达式替换函数......

我使用的是SqlServer 2008 R2。

1 个答案:

答案 0 :(得分: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