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 not like '%静静%'
update emp_info_master set chn_name=replace(chn_name,'静静','可静')where chn_name like '%静静%'
两段SQL可以实现。
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是打错了。
那你就把8000给加大
先select max(len(content)) from news 看看最大的是多大,然后再改8000那个参数
再一个content as varcher 这地方你写错了吧,是varchar吧? 参考技术A 确实如此,Replace不支持Text类型。
如果用程序来做的话,会简单些,不过速度也会慢一些。 参考技术B 突然想到,你在数据库里设计时该列数据类型设计成什么的?
以上是关于sql server 将字符串第二字符替换为另外一个字符的 方法的主要内容,如果未能解决你的问题,请参考以下文章