안녕하세요 자리수채우기 질문입니다! 0 4 731

by 계란에그 [2016.09.27 15:56:48]


예시 데이터 2개(본데이터는  저런유형이 상당히많음)

0000000000_410
0000000000_10

컬럼명은 code입니다

replace를 사용하려햇더니

위 _410 은 _뒤에 000이 3개 _000410 여야하며

_10 은 _뒤에 0000이 4개 _000010 이여야 합니다.

lpad는 맨왼쪽으로만가버려서 소용이없고..어떻게해야할까요

by 마농 [2016.09.27 16:00:36]

언더바 앞쪽 자리수는 고정인가요? 가변인가요?


by 계란에그 [2016.09.27 16:06:07]

앞자리수는 고정입니다!


by 마농 [2016.09.27 16:15:38]
WITH t AS
(
SELECT '0000000000_410' v FROM dual
UNION ALL SELECT '0000000000_10' FROM dual
)
SELECT v
     , SUBSTR(v, 1, 11) || LPAD(SUBSTR(v, 12), 6, '0') x                -- 앞 10자리 고정
     , REGEXP_REPLACE(REPLACE(v, '_', '_00000'), '_.*(.{6})$', '_\1') x -- 앞 자리수 가변
  FROM t
;

 


by 계란에그 [2016.09.27 16:21:52]

아하 저렇게 끊어서.. 감사합니다 하나 또 배워가요

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