oracle中拆分后再合并,Oracle 字段拆分替换在合并成一条

本文介绍了在Oracle数据库中如何处理字段拆分与合并的问题,包括使用Substr和Instr函数、REGEXP_SUBSTR函数以及PL/SQL循环遍历的方法。针对多条数据的情况,还探讨了使用Shell脚本进行处理的解决方案。
摘要由CSDN通过智能技术生成

看了网上很多Oracle字段拆分的实例,但是都未能完全满足要求,或许是我水平不够未能很好的理解,如果有大神懂得并且愿意告知我的,可以私信我,在这里真诚的感谢!

1.

首先建立表并插入测试数据

drop table col_split;

create table col_split

(

var_id varchar2(6),

var_value varchar2(80)

);

1--insert into col_split values(‘101001‘,‘spt001,spt2,spt3,spt004,spt005‘);

2--insert into col_split values(‘101002‘,‘spt001,spt2‘);

3--insert into col_split values(‘101005‘,‘spt001);

方案一:

Substr和instr

Substr 截取字符串

Instr  查找字符串出现的位置标号

SELECT var_value,SUBSTR(var_value,1,INSTR(var_value,‘,‘)-1)

FROM  col_split ;

出现的情况说明 第3条数据是null,因为找不到‘,’号,所以没有值,同样如果截取第二段的值,第2条数据将会出现null,而且如果字段长度大,分割的多这种写法就会大量的冗余,看起来非常的复杂。

方案二:

REGEXP_SUBSTR 函数使用

SELECT REGEXP_SUBSTR (var_value, ‘[^,]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值