REGEXP 함수를 어떻게 적용해야 할까요? 1 3 1,164

by idoris [2015.10.17 15:29:14]


C_CUST 테이블에,

FIRST_NAME 필드를 기준으로,

'/' , '&', ' OR ', ' AND ' 가 들어간 값이 2개 이상인 건들을 찾고자 합니다.

예를들면, 'ABC/DEF/HIJ'  ,  'ABC/DEF&HIJ',  'ABC OR DEF AND HIJ / LMN'   <-- 이러한 패턴이 들어간 값들을 찾고자합니다.

REGEXP 함수를 사용해야 할 것 같은데..

어떻게 적용해야 할지 모르겠습니다.

도움 부탁드립니다.

 

 

 

 

by jkson [2015.10.19 08:20:36]
with t as
(
select 'ABC/DEF/HIJ' text from dual
union all
select 'ABC/DEF& HIJ' text from dual
union all
select 'ABC OR DEF AND HIJ / LMN' text from dual
union all
select 'ABC OR DEF' text from dual
)
select * from t
where regexp_count(text,' OR ') 
    + regexp_count(text,' AND ') 
    + regexp_count(text,'/') 
    + regexp_count(text,'&') >=2

 


by 창조의날개 [2015.10.19 11:08:05]

SELECT TEXT
FROM T
WHERE REGEXP_COUNT(REGEXP_REPLACE(TEXT, '(AND|OR|/|\&)','%'),'%') >= 2
;

 


by 마농 [2015.10.19 15:32:50]
REGEXP_COUNT(text, '/|&| AND | OR ')

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입