-1

お気に入り:

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

「ldoedKdldkeo@fkfokKdkf@」のような出力

文字列の最初の @ と 3 番目の @ を文字 'K' に置き換えます

4

1 に答える 1

3

charindex()と を使用してこれを試してください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 に答える