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

例如 字段field 值 记录有 A001,A0002,B003,B004,将该字段首字母替换为P,执行结果为P001,P0002,P003,P004
最新回答
初心不负

2025-03-29 11:25:33

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 ;

离鸿

2025-03-29 11:51:28

废话少说,直接上菜!
update TABLE_NAME set field =REPLACE(field ,substr(field ,0,1) ,'P') where field is not null ;
孤则酒灌

2025-03-29 12:56:06

update table set 字段名= REPLACE(字段名,substr(字段名,0,1) ,'要替换成的内容');
substr(字段名,0,1)--0,1为要替换的字段部分的起始位置。