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

例如字段field值记录有A001,A0002,B003,B004,将该字段首字母替换为P,执行结果为P001,P0002,P003,P004... 例如 字段field 值 记录有 A001,A0002,B003,B004,将该字段首字母替换为P,执行结果为P001,P0002,P003,P004 展开
 我来答
freechan10
2020-02-03 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.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 ;

孤独的秦祥林
推荐于2018-03-26
知道答主
回答量:10
采纳率:0%
帮助的人:4.3万
展开全部
废话少说,直接上菜!
update TABLE_NAME set field =REPLACE(field ,substr(field ,0,1) ,'P') where field is not null ;

参考资料: 感谢kuaikelong,感谢军军,感谢LDC。感谢自己!

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咹迪乭篈BQ
2011-08-11
知道答主
回答量:17
采纳率:0%
帮助的人:10万
展开全部
update table set 字段名= REPLACE(字段名,substr(字段名,0,1) ,'要替换成的内容');
substr(字段名,0,1)--0,1为要替换的字段部分的起始位置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式