各位大虾们,有个问题请教。我想从数据库中找出符合以下规则的资料:
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. 关键的栏位是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:使用正则表达式函数:
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