加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将有逗号的字符串拆解

发布时间:2020-12-14 06:15:15 所属栏目:百科 来源:网络整理
导读:REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String,pattern,position,occurrence,modifier) __srcstr ? ? :需要进行正则处理的字符串 __pattern ? ?:进行匹配的正则表达式 __position ? :起始位置,从第几个字符开始正则表达式匹配(默认为1)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读