Oracle中分割逗号函数REGEXP_SUBSTR

 

    最近优化FORM中的查询条件遇到某个字段可以选取多个值的问题,思路当然就是选取时将多个值通过某个符号拼接起来,查询数据的时候将拼接后的字符串按照符号分割开,在分割逗号的时候用到了一个新的方法REGEXP_SUBSTR,记录一下。该方法分割所有的逗号,返回多行。

 SELECT regexp_substr(p_item_code, '[^,]+', 1, LEVEL) AS pscode

     FROM dual

  CONNECT BY LEVEL <= length(p_item_code) + 1 -length(REPLACE(p_item_code, ',', ''))

  方法说明:REGEXP_SUBSTR(String,pattern,position,occurrence,modifier)

 参数说明:

   参数1:带分割字符串,在此处即为开始拼接起来的字符串

   参数2:正则表达式,此处用的'[^,]+'表示匹配一个或多个不是“,”的字符。

   参数3:起始位置,从第几个字符开始正则表达式匹配,默认是1

   参数4:标识第几个匹配组,默认为1

   参数5:匹配模式,i不区分大小写进行检索,c区分大小写进行检索,默认是c

  

    

 

   

转载于:https://www.cnblogs.com/chenchengfei/p/9046124.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值