게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
Oracle SUBSTR, TRIM, DECODE 등 잘 아는분
게시물ID : jisik_135601짧은주소 복사하기
작성자 : Programmer
추천 : 0
조회수 : 767회
댓글수 : 1개
등록시간 : 2012/10/27 10:06:39

예를들어

001023304 라는 문자와

321000000 라는 문자가 있을 때


001023304는 1-2-33-4 가 되도록

321000000은 321 이 되도록 하려고 할 때

어떻게 해야할까요....


select REPLACE(DECODE(SUBSTR('001023304 ', 1, 2), '00', SUBSTR('001023304 ', 3, 1), SUBSTR('001023304 ', 1, 3)) || '-' ||
DECODE(SUBSTR('001023304 ', 4, 2), '00', '', DECODE(SUBSTR('001023304 ', 4, 1), '0', SUBSTR('001023304 ', 5, 1))) || '-' ||
DECODE(SUBSTR('001023304 ', 6, 2), '00', '', SUBSTR('001023304 ', 6, 2), DECODE(SUBSTR('001023304 ', 6, 1), '0', SUBSTR('001023304 ', 7, 1))) || '-' ||
DECODE(SUBSTR('001023304 ', 8, 2), '00', '', DECODE(SUBSTR('001023304 ', 8, 1), '0', SUBSTR('001023304 ', 9, 1))), '---', '') a
from dual

이렇게 해봤는데

1-2--4 가 되어버리네요....

0이 아닌 숫자가 2개 연속 들어가도 저렇게 중간이 비어버려요....ㄷㄷ

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호