sql怎么批量替换字段里的字符串的?
updatetable[表名]setFields[字段名]=replace(Fields[字段名],'被替换原内容','要替换成的内容');看到网上用这个语句做替换。字段...
update table[表名] set Fields[字段名]=replace(Fields[字段名],'被替换原内容','要替换成的内容'); 看到网上用这个语句做替换。
字段第一个数据里包含“aaaaxxxbbb”,第二个数据包含的是“aaaaybbb”,第三个数据包含的是“aaaamtbbb”......,我只要替换包含'aaaa*bbb',字段里其他的内容不变的,而且其他的内容也是不一样的。update table[表名] set Fields[字段名]=replace(Fields[字段名],'aaa*bbb','要替换成的内容');结果出错,这样的情况能批量替换吗?
不明白,晕。
第一个数据里包含“aaaaxxxbbb”,这串字符替换成A
第二个数据包含的是“aaaaybbb”,这串字符替换成A
第三个数据包含的是“aaaamtbbb”,这串字符替换成A
而且要字段中其他字符串保持不变。
要替换的是这样的字符串,不是字段所有内容,这样指定replace(字段名,'aaaa','cccc')where 字段名 like 'aaa*bbb' ,是不是把包含aaa*bbb的所有字段内容换成一个固定的了? 展开
字段第一个数据里包含“aaaaxxxbbb”,第二个数据包含的是“aaaaybbb”,第三个数据包含的是“aaaamtbbb”......,我只要替换包含'aaaa*bbb',字段里其他的内容不变的,而且其他的内容也是不一样的。update table[表名] set Fields[字段名]=replace(Fields[字段名],'aaa*bbb','要替换成的内容');结果出错,这样的情况能批量替换吗?
不明白,晕。
第一个数据里包含“aaaaxxxbbb”,这串字符替换成A
第二个数据包含的是“aaaaybbb”,这串字符替换成A
第三个数据包含的是“aaaamtbbb”,这串字符替换成A
而且要字段中其他字符串保持不变。
要替换的是这样的字符串,不是字段所有内容,这样指定replace(字段名,'aaaa','cccc')where 字段名 like 'aaa*bbb' ,是不是把包含aaa*bbb的所有字段内容换成一个固定的了? 展开
4个回答
推荐于2017-09-16 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464972
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
方法一:
varchar和nvarchar类型是支持replace,所以如果你的text不超过8000可以先转换成前面两种类型再使用replace 替换 text ntext 数据类型字段的语句 。
update 表名 set 字段名=replace(cast(与前面一样的字段名 as varchar(8000)) ,'原本内容','想要替换成什么')
方法二:
update [表名] set 字段名 = replace(与前面一样的字段名,'原本内容','想要替换成什么')
展开全部
估计你是没理解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'
譬如你举例的这几个
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'
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update [表名] set [字段名]=stuff([字段名],charindex('aaaa',[字段名],0),charindex('bbb',[字段名],0)-charindex('aaaa',[字段名],0)-4+7,'A'),
where [字段名] like '%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.
where [字段名] like '%aaaa%bbb%'
就是用charindex取得'aaaa','bbb'的位置,计算需要替换字符串的长度,然后用stuff函数替换.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你那样肯定不行。
update table[表名] set Fields[字段名]='要替换成的内容' where Fields[字段名] like 'aaa%bbb'
update table[表名] set Fields[字段名]='要替换成的内容' where Fields[字段名] like 'aaa%bbb'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询