oracle 批量替换某字段中第一位的值

比如说,某字段值000001000002000003想要把第一位的0批量替换成2... 比如说,某字段值000001 000002 000003 想要把第一位的0批量替换成2 展开
 我来答
liuyx_know
2010-08-31 · TA获得超过425个赞
知道小有建树答主
回答量:506
采纳率:100%
帮助的人:425万
展开全部
UPDATE TABLE_NAME SET COL1 = '2'||SUBSTR(COL1,2,LENGTH(COL1) - 1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nilaor
2010-08-31 · TA获得超过903个赞
知道小有建树答主
回答量:537
采纳率:0%
帮助的人:548万
展开全部
对于这个意思,不知道楼住是想哪一种?
1、不管第一位是什么,直接替换为2;
2、只有当第一位为0的时候,才替换为2;

对于第一种想法的话,可以通过截取字符串,可以用下面的更新语句:
UPDATE 表名 SET 字段名= '2' || substr(字段名,2) WHERE 字段名 IS NOT NULL;

(注意:oracle中的第一个字符的位置为1,第二个的位置为2,因此,上面使用substr(字段名,2),而不像java中,使用1)

对于第二种想法,可以使用正则表达来进行处理,或者是采用下面的方法:
UPDATE 表名 SET 字段名= '2' || substr(字段名,2) WHERE 字段名 IS NOT NULL AND substr(字段名,1,1) = '0';
(经过试验,其中第二种情况下,条件:字段名 IS NOT NULL 可以省略掉)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式