SUBSTR, TRIM 등 관련 질문 0 1 1,331

by 화니 [Oracle 기초] 자르기 [2012.10.27 09:54:34]


예를들어

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 가 되어버리네요....

by 화니 [2012.10.27 11:04:22]
자문자답

REPLACE(LTRIM(SUBSTR(A.SOURCE, 1, 3), '0') || '-' || 
    LTRIM(SUBSTR(A.SOURCE, 4, 2), '0') || '-' || 
    LTRIM(SUBSTR(A.SOURCE, 6, 2), '0') || '-' || 
    LTRIM(SUBSTR(A.SOURCE, 8, 2), '0'), '---', '')

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