oracle中,如何批量替换某字段的部分值,该字段其他部分保持不变?
例如字段field值记录有A001,A0002,B003,B004,将该字段首字母替换为P,执行结果为P001,P0002,P003,P004...
例如 字段field 值 记录有 A001,A0002,B003,B004,将该字段首字母替换为P,执行结果为P001,P0002,P003,P004
展开
3个回答
展开全部
1、创建测试表;
create table test_str_replace(id varchar2(20),value varchar2(20));
2、插入测试数据;
insert into test_str_replace values('1','abcbcade');
insert into test_str_replace values('2','aaabcbca');
insert into test_str_replace values('3','aabcaabcab');
commit;
3、查询表中全量数据;select t.*, rowid from test_str_replace t;
4、编写语句,将value字段中'abc'替换成'123',其他保持不变;
select t.*, regexp_replace(value,'abc','123') cnt from test_str_replace t ;
展开全部
废话少说,直接上菜!
update TABLE_NAME set field =REPLACE(field ,substr(field ,0,1) ,'P') where field is not null ;
update TABLE_NAME set field =REPLACE(field ,substr(field ,0,1) ,'P') where field is not null ;
参考资料: 感谢kuaikelong,感谢军军,感谢LDC。感谢自己!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update table set 字段名= REPLACE(字段名,substr(字段名,0,1) ,'要替换成的内容');
substr(字段名,0,1)--0,1为要替换的字段部分的起始位置。
substr(字段名,0,1)--0,1为要替换的字段部分的起始位置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询