by 낭만오리 [SQL Query] ORACLE REGEXP_REPLACE [2019.08.26 17:22:45]
오라클 정규식을 이용하여 문자열에 포함된 숫자에 천단위 컴마를 추가하고 싶습니다.
SELECT REGEXP_REPLACE(REVERSE(REGEXP_REPLACE(REVERSE(REPLACE(COL_DESC, ',', '')), '(\d{3})','\1,')), '^,','') COL_DESC FROM ( SELECT '337000원*100명' COL_DESC FROM DUAL )
위 쿼리 결과는 337,000원*,100명 과 같이 나오는데 100명 앞쪽 "," 를 제거하고 싶은데 잘 안되네요.. ^^;
매번 도움에 감사드리며 고수님들의 노하우 부탁드립니다.
감사합니다.
WITH t AS ( SELECT 1 pk, '337000원*100명' col_desc FROM dual UNION ALL SELECT 2, '337000$*100x' FROM dual UNION ALL SELECT 3, '1337000원*100명' FROM dual UNION ALL SELECT 4, '337,000원*100명' FROM dual UNION ALL SELECT 5, '12345678900원*1000명' FROM dual ) -- (숫자1)(숫자3)(숫자아닌거1) 패턴을 찾아 컴마 붙이기 5번 반복 수행 SELECT * FROM t MODEL DIMENSION BY (pk) MEASURES (col_desc, CAST(col_desc AS VARCHAR2(99)) x) RULES ITERATE (5) ( x[ANY] = REGEXP_REPLACE(x[CV()], '(\d)(\d{3})([^0-9]|$)', '\1,\2\3') ) ;