星五博客

MSSQL字符串处理-清除指定不连续或连续的字符

有时候,我们要通过SQL语句来处理字符串,比如清除某个字符串中的指定字符,这里举个例子,比如清除“a b,c;d|e ”中的“ ,;|”:

DECLARE @sS varchar(100),@sD varchar(1),@sT varchar(10)
set @sS='a b,c;d|e'
set @sT=' ,;|'
select '的字符串:'+@sS+' 需删除内容:'+@sT
select CHARINDEX(' ',@sS) UNION
select CHARINDEX(',',@sS) UNION
select CHARINDEX(';',@sS) UNION
select CHARINDEX('|',@sS)

while len(@sT)<>0
begin
  set @sD=left(@sT,1)
  set @sS=left(@sS,CHARINDEX(@sD,@sS)-1)+right(@sS,len(@sS)-CHARINDEX(@sD,@sS))
  set @sT=right(@sT,len(@sT)-1)
end
select @sS

--清除指定不连续或连续的字符