예를들어
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개 연속 들어가도 저렇게 중간이 비어버려요....ㄷㄷ