各位大虾们,有个问题请教。我想从数据库中找出符合以下规则的资料:
1. 关键的栏位是shop_code,是8位的字符串,都是由字母和数字组成。
2. 其中第5位是我感兴趣的,如果第5位是数字“1”或者“2”,我就选出这笔资料。请问正则表达式能出现在Query中吗?我用了下面的语句,但是没有得到任何结果:
select shop_code from shops where shop_code like '[a-zA-Z0-9{4}[1-2]%]'先谢谢大家了。

解决方案 »

  1.   


    --方法1:使用正则表达式函数:
    SQL> with t as(
      2       select 'adfe2der' co from dual union all
      3       select 'eeer1erw' from dual union all
      4       select 'wwww2okl' from dual union all
      5       select 'eeee5eee' from dual union all
      6       select 'rrrr8rrr' from dual )
      7  select *
      8  from t
      9  where regexp_like(co,'[1-2]')
     10  /
     
    CO
    --------
    adfe2der
    eeer1erw
    wwww2okl
    --方法2:使用substr函数:
    SQL> with t as(
      2       select 'adfe2der' co from dual union all
      3       select 'eeer1erw' from dual union all
      4       select 'wwww2okl' from dual union all
      5       select 'eeee5eee' from dual union all
      6       select 'rrrr8rrr' from dual )
      7  select *
      8  from t
      9  where substr(co,5,1) in ('1','2')
     10  /
     
    CO
    --------
    adfe2der
    eeer1erw
    wwww2okl