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

如题所述

update
[表名]
set
[字段名]=stuff([字段名],charindex('aaaa',[字段名],0),charindex('bbb',[字段名],0)-charindex('aaaa',[字段名],0)-4+7,'A'),
where
[字段名]
like
'%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-28
估计你是没理解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'本回答被网友采纳

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

sql中如何批量替换字段里的字符串?
'cccc')where字段名like'aaa*bbb'\\x0d\\x0a\\x0d\\x0a当然,这个模糊查询是access里的,如果是sqlserver或oracle等,那个*是要替换成%的\\x0d\\x0a\\x0d\\x0a---补充---\\x0d\\x0a按你说的意思\\x0d\\x0aaccess:\\x0d\\x0aupdate表名set字段名='A'where字段名like'aaa*bbb'\\x0d\\x0a...

sql 2000 如何批量替换字段里的部分内容?
使用 REPLACE 函数。函数格式:REPLACE ( string_expression , string_pattern , string_replacement )string_expression 被替换的字段 string_pattern 被替换的内容 string_replacement 替换的内容 函数返回替换后字符串。如图表格test:update test set a = replace(a,'aa','bb');即把所有a列 ‘aa’...

...通过sql语句如何批量去掉某一个表中某一个字段的下面的相同部分字符...
SET litpic = REPLACE ( litpic , '', '');去尾

...请问用UPDATE语句如何批量将“*”修改“×”?
在SQL SERVER中批量替换字符串的方法 update table[表名] set Fields[字段名]=replace(Fields[字段名],'被替换原内容','要替换成的内容')你的这个问题可以这样做:update ProgInfo set CHMC=replace(CHMC,'*','×')

mysql批量替换数据库中某字符串前的和某字符串后的内容
)) + len(字段名)-instr('0over%>',字段名)+1),字段名) as 新字段名 from table;意思是如果在这个字段里有 <0%start ... 0over%> 标识的值就返回删除中间内容前后拼接的值,如果没有就返回原字段值。在SQL里面没有<0%start ... 0over%>还去给他套用函数就会出错的 ...

SQL 怎么批量修改数据表内容
先去空白再替换。如果那个空白是空格就好办,用函数rtrim,ltrim去空格,如果不是空格你把sql里的数据粘贴到记事本里,然后再sql的查询分析器里输入select ascii(' 那个空白字符')得到这个空白的ascii码,接着update表名 set 字段名=replace(字段名,char(刚才得到ascii码),'')把空白都去掉之后用你那个...

sql怎么批量替换字段里的有不同字符的字符串的?
如果你的替换后的内容一致的,比如都是替换成bbb,那么:update table set fields = bbb where fields like 'aaaa___bbb'(3个短下划线)

sql server 2008 如何批量替换字符串,指定的内容里有多个相同值_百度知 ...
使用replace函数就可以了。select replace('a321sd32a1d32a1sd321as3d1a32sd1','1s',N'大')---结果集a32大d32a1d32a大d321as3d1a32sd1

SQL批量修改某字段的一部分数据
sql UPDATE customers SET email = REPLACE(email, 'old', 'new')WHERE email LIKE 'old%';在这个例子中,UPDATE语句使用了REPLACE函数来将"email"字段中的"old"替换为"new"。WHERE子句使用了LIKE操作符和通配符"%"来限制只修改以"old"开头的电子邮件地址。请注意,在执行批量修改操作之前,建议先...

相似回答