有没有更优雅的方法来做到这一点。我想用单个空格替换重复的空格......
declare @i int
set @i=0
while @i <= 20
begin
update myTable
set myTextColumn = replace(myTextColumn, ' ', ' ')
set @i=@i+1
end
(它的 sql server 2000 - 但我更喜欢通用 SQL)
这有效:
UPDATE myTable
SET myTextColumn =
REPLACE(
REPLACE(
REPLACE(myTextColumn
,' ',' '+CHAR(1)) -- CHAR(1) is unlikely to appear
,CHAR(1)+' ','')
,CHAR(1),'')
WHERE myTextColumn LIKE '% %'
完全基于设置;没有循环。
因此,我们用一个不寻常的字符和一个空格替换任意两个空格。如果我们将不常见的字符称为 X,则 5 个空格变为:“ X X ”,6 个空格变为“ X X X”。然后我们用空字符串替换“X”。因此,5 个空格变为“ ”,6 个空格变为“ X”。然后,如果空格数为偶数,我们将删除所有剩余的“X”,留下一个空格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)