今天在itpub论坛遇到使用正则表达式regexp_like解决问题一例:
链接见:http://www.itpub.net/thread-1637870-1-1.html
问题描述如下:
table名: test
-------------------------------------------------
content
-------------------------------------------------
Level:2000-3000:0.02,3000-4000:0.03,4000-50|test:1,2
Level:2000-3000:0.02,3000-4000:0.03,4000-50|test:11,13,22,24
Level:2000-3000:0.02,3000-4000:0.03,4000-50|test:10,9,27,34,
如果查给出的参数是:2
只有第一条是满足条件的
如果是:22
只有第二条是满足条件的。
解决方法如下:
with t as
(select 'Level:2000-3000:0.02,3000-4000:0.03,4000-50|test:1,2' a from dual union all
select 'Level:2000-3000:0.02,3000-4000:0.03,4000-50|test:11,13,22,24' a from dual union all
select 'Level:2000-3000:0.02,3000-4000:0.03,4000-50|test:10,9,27,34,' a from dual)
select a
from t
where regexp_like(regexp_substr(a, 'test.*' ), '(:|,)&input(,|$)');
如何使用regexp_like:
http://docs.oracle.com/cd/B14117_01/server.101/b10759/conditions018.htm REGEXP_LIKE
http://kanglecjr.iteye.com/blog/394434/ 使用正则表达式 匹配 字符串的一部分(REGEXP_LIKE)
http://blog.csdn.net/hzfu007/article/details/4032272 oracle中正则表达式相关函数regexp_like简介
http://hi.baidu.com/lordx/item/d4cbcd82f55611ebe596e01d oracle 10g正则表达式 REGEXP_LIKE 用法
如何使用正则表达式:
http://vbird.dic.ksu.edu.tw/linux_basic/0330regularex_2.php 第十二章、正规表示法与文件格式化处理
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9537053/viewspace-736157/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9537053/viewspace-736157/