当前位置:编程学习 > C#/ASP.NET >>

问一个sql的问题

我要把字符串替换成如下效果,sql如何写

aabbaabbaaddaa 替换成aabbaabbaaddcc

意思就是只替换最后一个aa,其他的aa都不要换 --------------------编程问答-------------------- 你可以在程序里替换后,在插入数据库啊
--------------------编程问答--------------------

string ss=aabbaabbaaddaa;
   ss=ss.substring(0,ss.Length-2)+"cc";
--------------------编程问答--------------------
declare @s varchar(50)
set @s='aabbaabbaaddaaff'

select stuff(@s,len(@s)-charindex('aa',reverse(@s)),2,'cc')


aabbaabbaaddccff --------------------编程问答-------------------- sql 
select substring('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 的回复:
SQL codedeclare @s varchar(50)
set @s='aabbaabbaaddaaff'

select stuff(@s,len(@s)-charindex('aa',reverse(@s)),2,'cc')



aabbaabbaaddccff
--------------------编程问答-------------------- 基本思路,找到最后一个aa的位置,然后用CC替换
因为没有lastcharindex 所以复杂了点,
同时考虑aa可能不是最后几个字符

declare @a varchar(40)
declare @b varchar(40)
declare @c varchar(40)
set @a='aabbaabbaaddaa233'
set @b='aa'
set @c='cc'
print substring(@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 的回复:
SQL codedeclare @s varchar(50)
set @s='aabbaabbaaddaaff'

select stuff(@s,len(@s)-charindex('aa',reverse(@s)),2,'cc')



aabbaabbaaddccff

楼主可以用这个方法来实现。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,