[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;

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

1万+

被折叠的 条评论
为什么被折叠?



