Oracle替换第一个字符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle替换第一个字符相关的知识,希望对你有一定的参考价值。
Oracle字符串中替换第一次匹配的字符,这要怎么写?比如:abcdba, 把第一个b替换为x,结果为:axcdxa
参考技术A select replace(substr('abcdba',0,instr('abcdba','b')),'b','x') ||substr('abcdba',instr('abcdba','b')+1, length('abcdba')) from dual结果应该是axcdba吧....第一个b替换为x,第二个不变
oracle 批量替换某字段中第一位的值
比如说,某字段值000001 000002 000003 想要把第一位的0批量替换成2
参考技术A UPDATE TABLE_NAME SET COL1 = '2'||SUBSTR(COL1,2,LENGTH(COL1) - 1) 参考技术B 对于这个意思,不知道楼住是想哪一种?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 可以省略掉)本回答被提问者采纳
以上是关于Oracle替换第一个字符的主要内容,如果未能解决你的问题,请参考以下文章
sql Oracle SQL:返回当前月份第一天的字符串(如果其他月份为ar,则替换SYSDATE的任何日期字段/值