这里先产生一些测试数据,前后中间都有多个空格:
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('',string)> 0
结果:
(2 row(s) affected)
NewString
-------------------------------------------------------------
做 个 测试
OK
(2 row(s) affected)
这种方法值得借鉴。