oracle sql 分割某个字段中用逗号隔开的数据为行

这篇博客介绍了如何在Oracle SQL中利用REGEXP_SUBSTR函数按特定规则分割字符串。通过示例展示了如何从包含逗号分隔的字符串中提取每个单独的元素,并在多行中显示。适用场景包括处理包含多个值的数据库字段。
摘要由CSDN通过智能技术生成

[https://blog.csdn.net/u014514528/article/details/80611128]

https://blog.csdn.net/u014514528/article/details/80611128

select regexp_substr(q.nums, '[^,]+', 1, rownum,'i'), names
  from (select '1,2,3' nums, '张三' names from dual) q
connect by rownum <= LENGTH(q.nums) - LENGTH(REGEXP_REPLACE(q.nums, ',', '')) + 1;

参数说明,
参数1: 待分割字符串
参数2:正则表达式
参数3:起始位置,从第几个字符开始正则表达式匹配(默认为1)
参数4:标识第几个匹配组,默认为1
参数5:模式('i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’。)

成功:

select DISTINCT REGEXP_SUBSTR(REPAIR_USER, '[^,]+', 1,LEVEL) AS STR, REPAIR_USER,REPAIR_ORDER_ID
  from ret_repair_order
	where  REPAIR_USER is not null
	and REPAIR_STAT in ('已完成')
	and FAB_ID = 'PACK'
and FAULT_VALID_FLAG ='Y'
connect by LEVEL <= LENGTH(REPAIR_USER) - LENGTH(REGEXP_REPLACE(REPAIR_USER, ',', ''))+1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值