-1

像:

s1= 'ldoed@dldkeo@fkfok@dkf@'

像'ldoedKdldkeo@fkfokKdkf@'这样的输出

用字符'K'替换字符串中的第一个@和第三个@

4

1 回答 1

3

尝试使用charindex()and stuff()

小提琴演示 1

declare @s1 varchar(100)= 'ldoed@dldkeo@fkfok@dkf@', @count int = 0 

select @count = charindex('@',@s1,@count+1), 
       @s1 = case isremove when 1 then 
             stuff(@s1, charindex('@',@s1,@count) ,1,'K') else @s1 end
from (values (1),(0),(1)) t(isremove)

小提琴演示 2

declare @s1 varchar(100)= 'ldoed@dldkeo@fkfok@dkf@'

select stuff(stuff(@s1,first,1,'K'),third,1,'K')
from (
select charindex('@',@s1,1) first,
   charindex('@',@s1,charindex('@',@s1,charindex('@',@s1,1)+ 1)+1) third
)x
于 2013-03-01T15:10:57.977 回答