Database/Oracle
[오라클] 숫자값에 3자리 마다 콤마(,) 찍기
데브포유
2009. 4. 13. 16:30
반응형
숫자형 컬럼을 조회할 경우 조회된 결과 값에 3자리마다 콤마를 찍어 출력하는
2가지 방법입니다.
1. TO_CHAR 함수 이용
SELECT TO_CHAR( num_col , '999,999,999,999,999')
FROM TEMP
주의)999,999 패턴을 주실때는 충분히 큰 숫자를 주셔야 합니다. 조회될 수 있는 값보다
작으면 출력이 안될 수도 있습니다.
2. REGEXP_REPLACE 함수 이용
SELECT NO
,REVERSE(TO_CHAR(no)) AS REVERSE_NO
,REGEXP_REPLACE(REVERSE(REGEXP_REPLACE( REVERSE(TO_CHAR(no)), '([0-9]{3})','\1,')), '^,','') AS COMMA_NO
FROM
(
SELECT 123456789 AS no
FROM dual
) V1
;
<<결과>>
NO REVERSE_NO COMMA_NO
--- ------------- -------------
123456789 987654321 123,456,789
TO_CHAR 함수를 이용하는 방법은 쉽지만 자릿수를 잘 고려하여 패턴을 넣어줘야 불편함이 있고,
REGEXP_REPLACE 함수는 자릿수를 고려하지 않아도 되지만 사용방법이 어렵다는 특징이 있습니다.
상황에 맞게 골라서 사용하시면 되겠습니다.
--- FROM dev4u ---
반응형