日期:2014-05-16  浏览次数:20589 次

一条语句将字段中的多个空格变成一个空格

这里先产生一些测试数据,前后中间都有多个空格:

 

DECLARE @test TABLE(stringVARCHAR(8000))

 INSERT INTO @test(string)

 SELECT N'       测试 'UNIONALL

  SELECT  N' OK   '

 

--第一步是将左右的空格去掉

--第二不是将空格替换成空格加特殊字符,这里我是用char(11)(可以看到这个字符基本上数据是不会使用的,当然大家可以选择自己的特殊字符)

--第三步是将特殊字符去掉

---结果就是各个字符中间只有一个空格了

 

 SELECT REPLACE(

            REPLACE(

                REPLACE(

                    LTRIM(RTRIM(string))

                , ',' '+CHAR(11)) --Changes 2 spacesto the OX model

            ,CHAR(11)+' ','')       --Changes the XO model to nothing

        ,CHAR(11),'')AS NewString--Changes the remaining X's to nothing

   FROM @test

  WHERE CHARINDEX