하나의 컬럼에서 구분값으로 특정 문자열을 확인하고싶습니다. 0 1 967

by 이상훈 [SQL Query] [2015.01.26 13:30:33]


구분값은 , 로 문자열마다 구분이 되구요 특정 문자열 예) naver.com 외의 값이 들어간 경우를 확인하고싶습니다.

naver.com 이 있어도 naver.com 외의 값이 있다면 추출되야하고

naver.com 이 없는 상태에서 naver.com 외의 값이 있다면 추출되야합니다.

단순 LIKE 문 만으로는 어려울것같아서요..;;

split으로 자른뒤 비교를 해야하나 고민이네요..

 

추출되야하는 예

1.naver.com,gmail.com,hanmail.net 

2.gmail.com,hanmail.net

 

테이블명은 email 컬럼명은 email_addr 

답변 부탁드립니다.

by 백면서생 [2015.01.26 16:00:38]
with t
as
(
 select 'naver.com,gmail.com,hanmail.net' email_addr from dual union all
 select 'gmail.com,hanmail.net' from dual union all
 select 'naver.com' from dual union all
 
 select '' from dual
)
select *
from t
where email_addr != 'naver.com'

with t
as
(
 select 'aaa@naver.com,aaa@gmail.com,aaa@hanmail.net' email_addr from dual union all
 select 'aaa@gmail.com,aaa@hanmail.net' from dual union all
 select 'aaa@naver.com' from dual union all
 
 select 'naver.com,gmail.com,hanmail.net' email_addr from dual union all
 select 'gmail.com,hanmail.net' from dual union all
 select 'naver.com' from dual union all
 
 select '' from dual union all
 
 select 'aaa@naver.com,naver.com,bbb@naver.com' from dual
)
select *
from t a
where regexp_replace(email_addr,'[^,]*naver.com|,') is not null

 

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