当前位置:数据库 > Oracle >>

使用Oracle正则表达式在500W条数据里面选取吉祥号

使用Oracle正则表达式在500W条数据里面选取吉祥号
 
摘要: 使用Oracle正则表达式在500W条数据里面选取吉祥号
 
     最近做一个项目,需要在7位数字串中,按下列规则选取吉祥号:
1、七位序列号中不能出现数字4
 
2、七位数字从右向左数,至少要出现3位一样的数字,而且一样的数字只能是6、8、9中的任意一个,如1235666。
 
3、七位数字可以出现全部相同的数字,如:1111111、2222222、3333333、5555555、6666666、7777777
 
      在Oracle 10g里面,我们可以轻松实现上述要求,一条SQL语句就搞定,如下:
 
   SELECT *
     FROM a
    WHERE    REGEXP_LIKE (id, '[^4]{4}[6]{3,6}$')
          OR REGEXP_LIKE (id, '[^4]{4}[8]{3,6}$')
          OR REGEXP_LIKE (id, '[^4]{4}[9]{3,6}$')
          OR REGEXP_LIKE (id, '^([0-35-9])\1{6}$');

 

 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,