sql server 将字符串第二字符替换为另外一个字符的 方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 将字符串第二字符替换为另外一个字符的 方法相关的知识,希望对你有一定的参考价值。

update emp_info_master set chn_name=replace(chn_name,'静','可')
where chn_name like '_静%'
这个方式是有效的,但是有一个问题就是
如果我的emp_info_master表中里有个人名字叫做“李静静”的情况下第三个静字也会被替换掉,请问如何才能只替换第二个“静”字

update emp_info_master set chn_name=replace(chn_name,'静','可')where chn_name like '%静%' and chn_name not like '%静静%'

查询条件为:名称中有静字,但不能是静静,这样就满足你的要求了。追问

我的意思是 替换所有第二个字为静的
就是说 如果是叫做李静静 那么 替换后变成 李可静 而不是不替换 有两个静的数据

追答

update emp_info_master set chn_name=replace(chn_name,'静','可')where chn_name not like '%静静%'
update emp_info_master set chn_name=replace(chn_name,'静静','可静')where chn_name like '%静静%'

两段SQL可以实现。

来自:求助得到的回答
参考技术A update emp_info_master set chn_name=stuff(chn_name,2,1,'可')
where chn_name='李静静'
希望能够帮到你;
参考技术B update emp_info_master set chn_name=stuff(chn_name,2,1,'可')
where chn_name like '_静_'本回答被提问者采纳

mssql,让某字段里的 某字符替换成另一字符

说明,本人已经用了下面语句出错:
update news set content=Replace(content,'电脑','计算机')

用了下面的语句不出错了,但内容大于4000个字符的文章被截了。
update news set content=Replace(cast(content as varcher(8000)),'电脑','计算机')

有什么办法,谢谢!QQ:25988850
回复军统的话:
不能加大,最大只能是8000了,那个varcher是打错了。

update news set content=Replace(cast(content as varcher(8000)),\'电脑\',\'计算机\')

那你就把8000给加大
先select max(len(content)) from news 看看最大的是多大,然后再改8000那个参数
再一个content as varcher 这地方你写错了吧,是varchar吧?
参考技术A 确实如此,Replace不支持Text类型。
如果用程序来做的话,会简单些,不过速度也会慢一些。
参考技术B 突然想到,你在数据库里设计时该列数据类型设计成什么的?

以上是关于sql server 将字符串第二字符替换为另外一个字符的 方法的主要内容,如果未能解决你的问题,请参考以下文章