我是靠谱客的博主 无心雪糕,最近开发中收集的这篇文章主要介绍mysql中regexp_substr_oracle REGEXP_SUBSTR函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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,1,'i') AS STR FROM DUAL;

结果:  17

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

[sql]

SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,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,20,23', '[^,]+', 1, 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,20,23', '[^,]+', 1, LEVEL, 'i') AS STR

FROM DUAL   CONNECT BY LEVEL <=

LENGTH('17,20,23') - LENGTH(REGEXP_REPLACE('17,20,23', ',', ''))+1;

结果:

-- 17

--20

--23

最后

以上就是无心雪糕为你收集整理的mysql中regexp_substr_oracle REGEXP_SUBSTR函数的全部内容,希望文章能够帮你解决mysql中regexp_substr_oracle REGEXP_SUBSTR函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部