`

Oracle中REGEXP_SUBSTR函数

阅读更多
Oracle中REGEXP_SUBSTR函数
 
Oracle中REGEXP_SUBSTR函数的使用说明:
 
题目如下:
在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合。
 
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;  
结果:  www.2cto.com  
STR
-----
17
 
2、查询使用正则分割后的最后一个值,也就是23
[sql] 
SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,3,'i') AS STR FROM DUAL;  
结果:
STR
----
23
 
3、获取一个多个数值的列,从而能够让结果以多行的形式展示出来
[sql] 
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <=7;  
结果:  www.2cto.com  
LEVEL
----
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;  
STR  www.2cto.com  
----
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;  
STR
----
17
20
23
分享到:
评论

相关推荐

    Oracle通过正则表达式分割字符串 REGEXP_SUBSTR的代码详解

    REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(string, pattern, position, occurrence, modifier) string :需要进行正则处理的字符串 pattern :进行匹配的正则表达式 position :起始位置,从第几个...

    Oracle分析函数基本概念和语法总结及Regexp_***用法

    Oracle分析函数基本概念和语法总结及Regexp_***(regexp_substr,regexp_instr, regexp_like, regexp_replace, regexp_count)用法

    mysql-udf-regexp:实现REGEXP _...()函数MySQL用户定义函数模块

    mysql-udf-regexp 该程序包将正则表达式函数用作MySQL用户定义函数(UDF)。...这些函数支持与MySQL REGEXP运算符相同的正则表达式语法,如MySQL手册的正则表达式附录中所述。 这些功能在名称上与Oracle SQL函数

    oracle正则表达式regexp_like的用法详解

    /*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在...

    Oracle正则表达式使用介绍

    语法: –1.REGEXP_SUBSTR与SUBSTR函数相同,返回截取的子字符串 REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]]) 注: srcstr 源字符串 pattern 正则表达式样式 position 开始匹配...

    Oracle正则表达式函数介绍.pdf

    Oracle正则表达式函数介绍,Oracle中的支持正则表达式的函数主要有下面四个: 1.REGEXP_LIKE :与LIKE的功能相似 2.REGEXP_INSTR :与INSTR的功能相似 3.REGEXP_SUBSTR :与SUBSTR的功能相似 4.REGEXP_REPLACE :与...

    Oracle中正则表达式的使用实例教程

    Oracle使用正则表达式离不开这4个函数:regexp_like、regexp_substr、regexp_instr、regexp_replace。 regexp_like 该函数只能用于条件表达式,和 like 类似,但是使用的正则表达式进行匹配 //查询所有包含小写...

    oracle分割字符串方法

    这里利用了函数 regexp_substr和connect by 及oracle的正则相关函数实现oracle分割字符串方法

    Oracle 两个逗号分割的字符串,获取交集、差集(sql实现过程解析)

    Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”。 想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5。 一、最终实现的sql语句 1、获取交集(相同值)...

    Oracle_Database_11g完全参考手册.part3/3

    附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 第1部分 关键的数据库概念 第1章 OracleDatabase11g体系结构 1.1 数据库和实例 1.2 数据库技术 1.2.1 存储数据 1.2.2 数据保护 1.2.3...

    Oracle_Database_11g完全参考手册.part2/3

    附录部分内容丰富、便予参照,包括Oracle命令、关键字、功能以及函数等。 目录 第1部分 关键的数据库概念 第1章 OracleDatabase11g体系结构 1.1 数据库和实例 1.2 数据库技术 1.2.1 存储数据 1.2.2 数据保护 1.2.3...

    oracle sql语言模糊查询–通配符like的使用教程详解

    oracle在Where子句中,可以对datetime、char、varchar字段类型的列用Like子句配合通配符选取那些“很像…”的数据记录,以下是可使用的通配符: % 零或者多个字符 _ 单一任何字符(下划线) \ 特殊字符 oracle...

    Oracle数据行拆分多行方法示例

    select regexp_substr('444.555.666', '[^.]+', 1, level) col from dual connect by level &lt;= regexp_count('444.555.666', '\.') + 1 输出结果: COL ---- 444 555 666 多行拆分 如果数据表存在多行数据...

    oracle统计时间段内每一天的数据(推荐)

    下面给大家介绍oracle统计时间段内每一天的数据,具体sql语句如下所示: 1. 生成1000个随机数 SELECT ROWNUM RN, DBMS_RANDOM.VALUE(0, ... SELECT REGEXP_SUBSTR('A,B,C,D', '[^,]+', 1, ROWNUM) FROM DUAL CONN

    oracle将以逗号分隔字符串转多行

    REPLACE(REGEXP_SUBSTR(T.TESTSTR, '[^,]+', 1, LEVEL), ',', ' ') TESTSTR FROM TEST2 T WHERE 1 = 1 CONNECT BY LEVEL &lt;= (LENGTH(T.TESTSTR) - LENGTH(REPLACE(T.TESTSTR, ',', '')) + 1); -- Create ...

    精髓Oralcle讲课笔记

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; --那么这个用户名就能使用了。 --(默认全局数据库名orcl) 1、...

    mysql基础只是总结

    【mysql中的简单的数学函数】 1、统计函数 count()|max()|min()|avg()|sum() 2、mysql运算 php运算一致(除逻辑运算&& || !) 3、数学函数 pi()|round()|rand()|ceil()|floor|sin()|abs()|mod() 4、特殊的 ...

Global site tag (gtag.js) - Google Analytics