微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将有逗号的字符串拆解

REGEXP_SUBSTR函数格式如下:

function REGEXP_SUBSTR(String,pattern,position,occurrence,modifier)

__srcstr     :需要进行正则处理的字符串

__pattern    :进行匹配的正则表达式

__position   :起始位置,从第几个字符开始正则表达式匹配(认为1)

__occurrence :标识第几个匹配组,认为1

__modifier   :模式(‘i‘不区分大小写进行检索;‘c‘区分大小写进行检索。认为‘c‘。)

1、查询使用正则分割后的第一个值,也就是17

[sql

SELECT REGEXP_SUBSTR(‘17,20,23‘,‘[^,]+‘,1,‘i‘) AS STR FROM DUAL;  

结果:  17  

2、查询使用正则分割后的最后一个值,也就是23

[sql]

SELECT REGEXP_SUBSTR(‘17,3,‘i‘) AS STR FROM DUAL;  

结果:  23

3、获取一个多个数值的列,从而能够让结果以多行的形式展示出来

[sql

SELECT LEVEL FROM DUAL CONNECT BY LEVEL <=7;  

结果:  

--1

--2

--3

--4

--5

--6

--7

4、将上面REGEXP_SUBSTR的occurrence关联

[sql

SELECT NVL(REGEXP_SUBSTR(‘17,LEVEL,‘i‘),‘NULLL‘) AS STR

    FROM DUAL   CONNECT BY LEVEL <= 7;  

结果:

-- 17

--20

--23

--NULL

--NULL

--NULL

--NULL  

5、优化上面的sql语句,让生成的行的数量符合实际情况

[sql

SELECT REGEXP_SUBSTR(‘17,‘i‘) AS STR    

FROM DUAL   CONNECT BY LEVEL <=        

     LENGTH(‘17,23‘) - LENGTH(REGEXP_REPLACE(‘17,‘,‘‘))+1;  

结果:

-- 17

--20

--23

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐