问题描述
我要把字符串替换成如下效果,sql如何写aabbaabbaaddaa替换成aabbaabbaaddcc意思就是只替换最后一个aa,其他的aa都不要换
解决方案
解决方案二:
你可以在程序里替换后,在插入数据库啊
解决方案三:
stringss=aabbaabbaaddaa;ss=ss.substring(0,ss.Length-2)+"cc";
解决方案四:
declare@svarchar(50)set@s='aabbaabbaaddaaff'selectstuff(@s,len(@s)-charindex('aa',reverse(@s)),2,'cc')
aabbaabbaaddccff
解决方案五:
sqlselectsubstring('aabbaabbaaddaa',1,len('aabbaabbaaddaa')-(charindex(reverse('aa'),reverse('aabbaabbaaddaa'))+len('aa')-1))+replace(reverse(substring(reverse('aabbaabbaaddaa'),1,charindex(reverse('aa'),reverse('aabbaabbaaddaa'))+len('aa')-1)),'aa','cc')'aabbaabbaaddaa'替换最后一个aa为cc
解决方案六:
引用3楼wzy_love_sly的回复:
SQLcodedeclare@svarchar(50)set@s='aabbaabbaaddaaff'selectstuff(@s,len(@s)-charindex('aa',reverse(@s)),2,'cc')aabbaabbaaddccff
解决方案七:
基本思路,找到最后一个aa的位置,然后用CC替换因为没有lastcharindex所以复杂了点,同时考虑aa可能不是最后几个字符declare@avarchar(40)declare@bvarchar(40)declare@cvarchar(40)set@a='aabbaabbaaddaa233'set@b='aa'set@c='cc'printsubstring(@a,1,len(@a)-charindex(REVERSE(@b),REVERSE(@a))-1)+@c+substring(@a,len(@a)-charindex(REVERSE(@b),REVERSE(@a))+len(@b),1000)
解决方案八:
引用3楼wzy_love_sly的回复:
SQLcodedeclare@svarchar(50)set@s='aabbaabbaaddaaff'selectstuff(@s,len(@s)-charindex('aa',reverse(@s)),2,'cc')aabbaabbaaddccff
楼主可以用这个方法来实现。