REGEXP_REPLACE 정규식 문의드립니다. 0 3 1,477

by 생각 [Oracle 기초] [2020.01.08 10:05:17]


안녕하세요. 새해 복 많이 받으세요~

LISTAGG로 나열한 날짜 데이터(YYYYMMDD, YYYYMMDD, ....)를 REGEXP_REPLACE를 활용해서 YYYY-MM-DD,YYYY-MM-DD.... YYYY-MM-DD 형태로 변환하고자 합니다.

SELECT REGEXP_REPLACE('20200101,20200102', '(.{4})(.{2})(.{2})', '\1-\2-\3') DATES
 FROM DUAL;

결과 : 2020-01-01,202-00-102

나열되는 날짜는 최소 1건부터 최대 30건 일 수 있습니다. 구분자는 콤마(,) 입니다.

반복되는 데이터는 정규식 활용이 어렵다면 다른 부분이 있을지 조언 부탁드립니다.

감사합니다.

by DarkBee [2020.01.08 10:30:17]

물론 현상태에서도 할수는 있지만 LISTAGG 하기전에 컨버팅하면 되지 않나요?


by 생각 [2020.01.08 10:44:20]

가장 쉬운 방법을 놓치고 있었네요.. ㅎㅎ 펑션으로 컨버팅했습니다. 감사합니다.


by 우리집아찌 [2020.01.08 11:15:02]

regexp_replace(‘20200101,20200102,20200103’ , ‘([0-9]{4})([0-9]{2})([0-9]{2})’,’\1-\2-\3’)

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