首页 > 数据库 >oracle数据库之regexp_substr函数

oracle数据库之regexp_substr函数

时间:2023-03-01 09:22:19浏览次数:47  
标签:200103 2002 substr 2001 2005 oracle regexp

函数定义
Regexp_Substr(String,pattern,position,occurrence ,modifier )

String:操作的字符串;
pattern:正则表达式匹配规则,匹配到则返回;
position:开始匹配的位置,默认当然是1;
occurrence:标识第几个匹配组,默认为1
modifier:模式(‘i‘不区分大小写进行检索,‘c‘区分大小写进行检索。默认为‘c‘)

select regexp_substr(‘2001,2002,200103,2005’,’[^,]+’,1,3) from dual
返回的结果就是:200103
返回的是’2001,2002,200103,2005’ 这个字符串被’,'截取拆分后的第三个字符串。

返回多行
需要返回多行,可以采用oracle的connect by 命令,行数的获得通过length来获得。

select regexp_substr(‘2001,2002,200103,2005’, ‘[^,]+’, 1, level, ‘i’) as str
from dual
connect by level <=
length(‘2001,2002,200103,2005’) -
length(regexp_replace(‘2001,2002,200103,2005’, ‘,’, ‘’)) + 1;

计算有几个分隔符后加1得到需要分几组:
length(‘2001,2002,200103,2005’) -
length(regexp_replace(‘2001,2002,200103,2005’, ‘,’, ‘’)) + 1;

函数中的第四个参数level分别取不同的组,第五个参数i代表不区分大小写
regexp_substr(‘2001,2002,200103,2005’, ‘[^,]+’, 1, level, ‘i’)

标签:200103,2002,substr,2001,2005,oracle,regexp
From: https://www.cnblogs.com/5miyuan/p/17166825.html

相关文章

  • oracle 闪回技术
    闪回技术概览1.查看数据的过去状态2.可沿时间轴向前或者向后闪回3.协助用户进行错误分析和恢复4.简单的sql实现闪回(或者DBMS_FLASHBACK包)5.闪回时间与数据库大小无关(......
  • Oracle 求当前日期是周几--to_char()
    Oracle求当前日期是周几--to_char()大概就是下面这种方法to_char(date,'D')Selectto_char(date,'ss')fromdual取当前时间秒部分Selectto_char(date,'mi')fromd......
  • Oracle数据库2
    一.创建用户和表空间1.1.以超级管理员身份登录connsysas/password**assysdba**1.1.1查看使用哪一个实例进行登录的selectinstance_namefromv$instance;1.2.......
  • oracle 口令文件参数文件
    转载于:(140条消息)如何管理oralce口令文件和参数文件_oracle口令文件_梦想家DBA匠人的博客-CSDN博客口令文件审核Step1:使用root账号将oracledba的权限移除[root@o......
  • 字符串中的slice(),substr(),substring()三种提取字符串的方法总结
    1、slice()slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。语法:str.slice(start,end),截取str从start到end的所有字符(包含起始位置,不包含结束位置)说明:st......
  • C++substr()函数
    C++中substr函数有三种用法,如下所示:假设strings(“student12”);stringx=s.substr()//默认时的长度为从开始位置到尾stringy=s.substr(5)......
  • oracle 长事务、大事务监控
    1.监控大事务selectcount(*)fromv$transactionwherestatus='ACTIVE'ANDused_urec>=200000;2.监控长事务selectcount(*)fromv$transactionwhereto_data(s......
  • Collation 差异导致 KingbaseES 与 Oracle 查询结果不同
    问题引入前端提了个问题,说是KingbaseES返回的结果与Oracle返回的结果不一样。具体问题如下:oracle执行结果:oracle有结果返回。SQL>createtablet3(idvarchar(9)......
  • oracle上一些查询表和字段语句
    oracle上一些查询表和字段语句--查询表空间中表数据占用情况语句1SELECT2OWNER3,TABLESPACE_NAME4,SEGMENT_NAME5,SUM(BYTES)/1024......
  • JavaScript RegExp 对象
    JavaScript RegExp 对象RegExp:是正则表达式(regularexpression)的简写。完整RegExp对象参考手册请查看我们的 JavaScriptRegExp对象的参考手册,其中提供了可以与......