sql中如何批量替换字段里的字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中如何批量替换字段里的字符串?相关的知识,希望对你有一定的参考价值。

update
[表名]
set
[字段名]=stuff([字段名],charindex('aaaa',[字段名],0),charindex('bbb',[字段名],0)-charindex('aaaa',[字段名],0)-4+7,'A'),
where
[字段名]
like
'%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.
参考技术A 估计你是没理解replace的意思

譬如你举例的这几个
update 表名 set 字段名=replace(字段名,'aaaa','cccc');

这样以后
aaaaxxxbbb 变成 ccccxxxbbb
aaaamtbbb 变成 ccccmtbbb

替换的是里边的aaa

你那么写不知道你要改什么,如果你只要改aaa*bbb的那种可以在后边加where条件

update 表名 set 字段名=replace(字段名,'aaaa','cccc') where 字段名 like 'aaa*bbb'

当然,这个模糊查询是access里的,如果是sqlserver或oracle等,那个*是要替换成%的

----补充----
按你说的意思
access:
update 表名 set 字段名='A' where 字段名 like 'aaa*bbb'

sqlserver或oracle:
update 表名 set 字段名='A' where 字段名 like 'aaa%bbb'
参考技术B 回答

您好,很高兴为您服务,正在为您咨询相关信息,马上回复您。

亲!您好。方法一:varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,\'原本内容\',\'想要替换成什么\')方法二:update [表名] set 字段名 = replace(与前面一样的字段名,\'原本内容\',\'想要替换成什么\')

亲,希望我的回答能帮助您哦,左下角可以给小度一个赞哦!祝您生活愉快哦!

提问

一个字段中的一个字符串内怎么批量替换

就是比如《好的》,替换成(好的),

回答

亲!您好。比如该字段第一个数据里包含“aaaaxxxbbb”,第二个数据包含的是“aaaayyybbb”,第三个数据包含的是“aaaazzzbbb”,我要把这些字符串都替换成xyz,怎么做呢? 回答: 就是你的意思说,某一个字段中包含一个长长的字符串,然后其中包含aaaaxxxbbb,aaaayyybbb(反正就是“aaaa?bbb”的形式),位置在这句话中不固定?比如一个A字段中包含aaaaxxxbbbaaaayyybbbaa?bbb,然后你把这些东西全部替换成xyz(变成xyzxyzaaaa?bbb) 追问: update table set fields = bbb where fields like \'aaaa____bbb\' 但是这句就把包含这样字符串的字段内容全部变成一样的了,我只要替换包含\'aaaa____bbb\',字段里其他的内容不变的,而且其他的内容也是不一样的。 回答: 明白了,等我上面的意思。这个题目我的意思好像不能直接用replace来做,因为replace里边必须是一个固定的内容字符串,不能是正则……我的意思是用C#或者其它编程工具做。1)首先读取这个字符串,保留在变量里。2)然后正则替换

提问

好的

如何替换掉字符串里的空格?

参考技术A

    用REPLACE函数来替换。

    SQL字段中的空字符有2种,空格符和tab制表符(即char(9))。

    例:去除 表table 中 col 列的空字符。

    去除空格符:update table set col = REPLACE(col,' ','')。

    去除制表符:update table set col = REPLACE(col,CHAR(9),'')。

以上是关于sql中如何批量替换字段里的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

mySQL怎么批量替换查询结果中的字段值?

oracle数据库字段内容如何批量替换?

SQL替换语句 批量修改增加删除字段内容

oracle中,如何批量替换某字段的部分值,该字段其他部分保持不变?

SQL批量查询和替换

SQLSERVER如何批次替换在列中不固定出现的第二个字符?