[Oracle] 숫자 천단위 콤마 찍는 2가지 방법
- 데이터베이스/오라클
- 2022. 4. 7.
오라클에서 숫자, 금액 등 수치 값에 천 단위로 콤마(쉼표)를 추가하기 위해서는 TO_CHAR 함수를 많이 사용한다. TO_CHAR 함수는 수치 값의 최대 길이를 예측 가능한 경우 오류 없이 사용할 수 있으며, 수치 값의 최대 길이를 예측하기 힘든 경우 정규식 함수를 사용하여 천 단위로 콤마를 추가할 수 있다.
목차 |
TO_CHAR 함수를 사용하는 방법
SELECT TO_CHAR(1234567890, 'FM999,999,999,999') AS val
FROM dual
수치 값에 천 단위 콤마를 추가하기 위해서는 TO_CHAR 함수를 많이 사용한다.
TO_CHAR 함수를 사용할 때는 두 번째 인자에 수치 값의 길이에 맞게 패턴 값을 부여해야 한다.
패턴 값의 길이가 작을 경우 값을 반환하지 못한다.
패턴 값은 되도록이면 미래에 올 수 있는 최대 길이만큼 미리 선언을 해 놓아야 한다.
※ TO_CHAR 함수 사용 시 주의사항
대입할 수치 값의 최대 크기만큼 패턴 값을 선언해 놓아야 한다. (미래에 아주 큰 값이 생길 수 있을 경우 대비)
수치 값 보다 패턴 값이 작으면 값을 반환하지 못하고 ######으로 표시된다.
FM 키워드를 사용하지 않으면 반환된 값의 앞부분에 공백이 추가된다.
정규식 함수를 사용하는 방법
SELECT REGEXP_REPLACE(REVERSE(REGEXP_REPLACE(REVERSE(TO_CHAR(1234567890)), '(\d{3})','\1,')), '^,','') AS val
FROM dual
정규식 함수를 사용하여 천 단위 콤마를 추가할 경우 수치 값의 길이를 미리 지정해 놓지 않아도 된다.
정규식 함수를 사용할 경우 쿼리문이 조금 복잡해 보이는 경향이 있다.
미래의 수치 값 길이를 예측하기 힘들 경우 정규식 함수를 사용하는 방법도 좋은 방법이다.