`

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分析函数是数据库管理系统Oracle中的一种高级查询工具,它们用于处理行集,计算基于特定窗口内的数据的聚合值。分析函数的主要特点是返回的结果不仅仅是一行,而是多行,这与传统的聚合函数(如SUM, AVG等)...

    oracle_10g正则表达式_REGEXP_LIKE_用法

    其中,`REGEXP_LIKE`是最常用的函数之一,它允许用户通过正则表达式来匹配字符串中的模式,从而实现更复杂的查询需求。下面将详细介绍`REGEXP_LIKE`的用法以及如何在Oracle 10g中使用正则表达式进行数据筛选。 ### ...

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

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

    oracle中操作字符串

    使用REGEXP_SUBSTR函数 `REGEXP_SUBSTR`函数是Oracle提供的一种强大的工具,用于从文本字符串中提取匹配正则表达式的子串。这个函数非常适用于从复杂的字符串中抽取所需的信息。 ##### 例1: 提取字符串中的第二个...

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

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

    Oracle正则表达式函数

    1. REGEXP_LIKE:这是Oracle中最常用的正则表达式函数,它用于在WHERE子句中进行模式匹配。语法结构为`REGEXP_LIKE(column, pattern, [match_parameter])`。其中,`column`是你要检查的列,`pattern`是正则表达式...

    Oracle正则表达式函数全面解析

    本文将详细介绍Oracle数据库中支持的四个主要正则表达式函数:`REGEXP_LIKE`、`REGEXP_INSTR`、`REGEXP_SUBSTR`和`REGEXP_REPLACE`,以及如何使用POSIX正则表达式。 #### 二、Oracle正则表达式基础 ##### 1. POSIX...

    Oracle拆分字符串,字符串分割的函数

    本篇文章将深入探讨Oracle中用于拆分字符串的函数,并通过具体的示例展示它们的用法。 1. **instr() 函数** `instr()` 是Oracle中的一个内建函数,它用于查找子串在目标字符串中的位置。例如,`instr(string, ...

    Oracle正则表达式

    `REGEXP_SUBSTR` 是一个非常实用的函数,它可以基于正则表达式来提取字符串中的特定部分。此函数的通用语法为: ```sql REGEXP_SUBSTR(srcstr, pattern[, position[, occurrence[, match_option]]]) ``` - **...

    sql中判断某列是否为数字.docx

    Oracle 中的支持正则表达式的函数主要有四个:REGEXP_LIKE、REGEXP_REPLACE、REGEXP_INSTR 和 REGEXP_SUBSTR。这四个函数在用法上与 Oracle SQL 函数 LIKE、INSTR、SUBSTR 和 REPLACE 用法相同,但它们使用 POSIX ...

    oracle数据库截取字符串

    Oracle数据库提供了多种截取字符串的方法,本文将介绍 substr 和 instr 两个常用函数,以及 case when then else end 语句的使用。 一、substr 函数 substr 函数用于截取字符串的一部分,语法为 `substr(string, ...

    oracle正则表达式

    Oracle中的正则表达式主要通过内置的SQL函数来实现,如REGEXP_LIKE、REGEXP_SUBSTR、REGEXP_REPLACE等。这些函数使得用户能够以更复杂的方式匹配、提取和替换字符串,极大地增强了SQL查询的灵活性。 `REGEXP_LIKE` ...

    正则表达式在Oracle中的应用与实现.pdf

    在Oracle 10g中,增加了REGEX P—LIKE操作符、REGEXP_INSTR、REGEXP_SUBSTR和REGEXP_REPLACE等函数,使得在Oracle中也能方便地使用正则表达式。 正则表达式的定义是指使用某种语法定义的字符串模式,引擎采用这种...

    oracle正则表达式.ppt

    Oracle支持四种与正则表达式相关的函数:REGEXP_LIKE、REGEXP_INSTR、REGEXP_SUBSTR和REGEXP_REPLACE。 1. REGEXP_LIKE:此函数用于执行基于正则表达式的模糊匹配。与传统的LIKE操作符不同,它能处理更复杂的匹配...

    Oracle 总结的正则表达式带有详细的例子与解释

    `REGEXP_REPLACE(srcstr, pattern, replacement [, position [, occurrence [, match_option]]])`:用`replacement`替换`srcstr`中符合`pattern`的部分,`position`、`occurrence`和`match_option`选项与之前函数...

Global site tag (gtag.js) - Google Analytics