ORACLE特殊函数汇总

本文详细介绍了Oracle数据库中的REGEXP_SUBSTR函数,包括参数含义、使用示例及其与CONNECT_BY_LEVEL结合使用的方法,展示了如何通过正则表达式从字符串中提取子串,并利用层级连接生成多行结果。
摘要由CSDN通过智能技术生成

个人工作记录,将会持续更新

1. REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)

  • 函数说明
    string:需要进行正则处理的字符串
    pattern:进行匹配的正则表达式
    position:起始位置,从字符串的第几个字符开始正则表达式匹配(默认为1)
    注意:字符串最初的位置是1而不是0
    occurrence:获取第几个分割出来的组(分割后最初的字符串会按分割的顺序排列成组)
    modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为’c’)针对的是正则表达式里字符大小写的匹配
  • 补充说明
    connect by Level
    REGEXP_SUBSTR函数一般和connect by Level配合使用,Level的值决定了生成的行数(子串)
  • 例子

select distinct * from (
select regexp_substr(q.nums, ‘[^,]+’, 1, Level,‘i’) order_num
from (
select ‘A,B,C,D,E’ nums from dual
) q
connect by Level <= LENGTH(q.nums) - LENGTH(REGEXP_REPLACE(q.nums, ‘,’, ‘’)) + 1) order by order_num;

  • 结果展示

select ‘A,B,C,D,E’ nums from dual

在这里插入图片描述

select distinct * from (
select regexp_substr(q.nums, ‘[^,]+’, 1, Level,‘i’) order_num
from (
select ‘A,B,C,D,E’ nums from dual
) q
connect by Level <= LENGTH(q.nums) - LENGTH(REGEXP_REPLACE(q.nums, ‘,’, ‘’)) + 1) order by order_num;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值