select *

from emp

where regexp_like(ename, 'A');


select *

from emp

where regexp_like(ename, 'A.E');


select *

from emp

where regexp_like(ename, 'L+');


select *

from emp

where regexp_like(ename, '[AB]');



select *

from emp

where regexp_like(ename, '[^AB]');



select *

from emp

where regexp_like(ename, '^A');



select *

from emp

where regexp_like(ename, 'N$');



select *

from emp

where regexp_like(ename, '^A.*N$');



select *

from emp

where regexp_like(ename, '[A-D]');




§문제) 다음의 테이블 데이터 중 아래의 regular expression을 

만족하는 데이터는 무엇입니까?


regular expression: '[^Ale|ax.r$]'



       NO NAME

   ------ -----------

        1 Alex

        2 Alax

        3 Alexer

        4 Alexendar

        5 Alexender



drop table t_names;

create table t_names (

 no number

, name varchar2(30)

);


insert into t_names values (1, 'Alex');

insert into t_names values (2, 'Alax');

insert into t_names values (3, 'Alexer');

insert into t_names values (4, 'Alexendar');

insert into t_names values (5, 'Alexender');

commit;



select * from t_names

where regexp_like(name, '[^Ale|ax.r$]');


       NO NAME

---------- ------------------------------

        4 Alexendar

        5 Alexender


'[^Alex|ax.r$]' ==> NOT IN ('A', 'l', 'e', 'x', '|', 'a', '.', 'r', '$')


       NO NAME

   ------ -----------

        1 Alex ==> 'A', 'l', 'e', 'x'가 위 리스트에 모두 포함 ==> 탈락

        2 Alax ==> 'A', 'l', 'a', 'x'가 위 리스트에 모두 포함 ==> 탈락

        3 Alexer ==> 'A', 'l', 'e', 'x', 'r'이 위 리스트에 모두 포함 ==> 탈락

        4 Alexendar ==> 'n', 'd'는 위 리스트에 포함되어 있지 않으므로 ==> 통과

        5 Alexender ==> 'n', 'd'는 위 리스트에 포함되어 있지 않으므로 ==> 통과


----------------


  cf.) select * from t_names

where regexp_like(name, '^Ale|ax.r$');


↕ ↕ ↕


select * from t_names

where regexp_like(name, '^Ale')

  or regexp_like(name, 'ax.r$');




§예제 두가지 


  http://goo.gl/FyNSq




+ Recent posts