오라클 문자 자르는 함수?? 5

by Kaiger [2017.01.11 11:17:27]


데이터가 같은 데이터가 중복으로 나옵니다

예를 들면

12345;12345 또는 20171110;20171110

이런식으로 나오는 데이터를 반으로 잘라서

12345 또는 20171110 으로 보여주려고 합니다

; 이건 replace로 날리면 되는데 .. 데이터를 반으로 나눠주는 함수 같은게 있나요??

by 마농 [2017.01.11 11:21:39]

다양한 예시자료가 있으면 좋겠네요.
중복자료만 있나요?
중복자료가 아닌 경우는 없나요?
자료는 2개 값을 세미콜론으로 분류한 것 뿐인가요?
1개 값이나 3개값, 그 이상 값이 나오는 경우는 없는지?
중복 자료는 항상 붙어 있는지?
1;2;1 형식으로 떨어져 있는 경우는 없는지?
중복자료는 2개까지인지? 3개 연속 중복인 경우는 없는지?


by Kaiger [2017.01.11 11:26:55]

예시와 같이 딱 두개의 데이터만 ; 이걸 구분자로 해서 나옵니다

떨어져서 나오는 경우는 없습니다

 


by 마농 [2017.01.11 11:28:33]

항상 중복인가요? 중복 아닌 자료는?


by jkson [2017.01.11 11:39:12]
with t as
(
select '12345;12345' txt from dual union all
select '20171110;20171110' from dual
)
select substr(txt,1,instr(txt,';')-1) txt1 --첫 구분자까지 잘라오기
     , substr(txt,1,length(txt)/2)    txt2 --반으로 자르기
     , regexp_substr(txt,'[^;]+',1,1) txt3 --구분자로 구분해서 첫 번째 것 가져오기
 from t

 


by Kaiger [2017.01.11 11:52:16]

항상 중복입니다.. 주신 답변으로 해결이 될것 같습니다. 감사합니다

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