오라클 TO_CHAR 숫자 포맷 형식 사용하기 / FM표기법
Oracle에서 숫자를 문자로 변환할 때 첫 번째 자리에 0이 있을 때
0이 생략되어 표출되는 경우가 있다.
예를 들어, '0.123'을 TO_CHAR로 변환했지만 0이 생략되어 '. 123'으로 표출될 것이다.
이때 0이 생략되지 않고 그대로 출력시켜주는 Format 형식이 있다.
FM 표기법
TO_CHAR('숫자열', 'FM999.00')
FM(Fill Mode) 표기법을 사용하면 숫자의 좌우 공백을 제거할 수 있습니다.
또한, 숫자의 형식을 지정할 때 다음과 같은 문자를 사용할 수 있습니다.
- 9 : 가변적인 값으로 0이거나 숫자가 없을 시 값을 버린다.
- 0 : 고정적인 값으로 변환된 숫자의 길이를 맞추고 싶으면 원하는 길이만큼 0으로 채워주면 된다.
다음 예제를 통해 TO_CHAR 함수와 다양한 포맷 형식을 사용하는 방법을 알아보겠습니다.
SELECT TO_CHAR(0.1230) AS NUM1
, TO_CHAR(0.1230, 'FM999.9999') AS NUM2
, TO_CHAR(0.1230, 'FM999.0000') AS NUM3
, TO_CHAR(0.1230, 'FM000.000') AS NUM4
, TO_CHAR(0.1230, 'FM000.0000') AS NUM5
FROM DUAL
▶ 위 쿼리의 결과
NUM1 | NUM2 | NUM3 | NUM4 | NUM5 |
.123 | .123 | .1230 | 000.123 | 000.1230 |
결과 설명
- NUM1 : 기본 TO_CHAR함수를 사용하여 변환한 결과. 형식 지정 문자열이 없으므로 기본 형식으로 출력.
- NUM2 : 첫 번째 자리에 0이 생략되고 소수점 이하 최대 4자리까지 표시.
- NUM3 : 소수점 이하 4자리까지 0을 포함하여 고정적으로 표시.
- NUM4 : 정수 부분을 3자리로 고정하고 소수점 이하3자리까지 표시. 정수 부분이 부족한 자리에는 0 채워짐.
- NUM5 : 정수 부분을 3자리로 고정하고 소수점 이하4자리까지 표시. 정수 부분이 부족한 자리에는 0이 채워지고 소수점 이하도 고정 길이로 표시됨.
추가적으로 그 외 기능들을 정리해보도록 하겠습니다.
숫자 포맷팅 기능 및 예제
- 천 단위 구분 기호
SELECT TO_CHAR(1234567.89, 'FM9,999,999.99') AS LARGE_NUM FROM DUAL;
- 부호 표시
SELECT TO_CHAR(-1234.56, 'FM9999.99S') AS NEG_NUM,
TO_CHAR(1234.56, 'FM9999.99S') AS POS_NUM
FROM DUAL;
-- NEG_NUM = -1234.56
-- POS_NUM = 1234.56+
- 로마 숫자
SELECT TO_CHAR(2023, 'RN') AS ROMAN_YEAR FROM DUAL;
-- ROMAN_YEAR = MMXXIII
- 회계 포맷
: 회계나 재무 보고서에서 자주 사용되는 포맷으로 음수를 괄호로 표시할 수 있습니다.
SELECT TO_CHAR(-1234.56, 'FM9,999.99MI') AS ACCOUNTING_NUM FROM DUAL;
-- ACCOUNTING_NUM = (1,234.56)
Oracle의 TO_CHAR 함수는 숫자 포맷팅에 매우 강력하고 유연한 기능을 제공합니다.
다양한 포맷 옵션을 사용하면 숫자를 읽기 쉽고, 일관된 형식으로 출력할 수 있어 실무에서 매우 유용합니다.
이러한 포맷팅 기능을 적절히 활용하면 보고서, 데이터 시각화, 재무 보고 등 다양한 비즈니스 애플리케이션에서 숫자 데이터를 효과적으로 표현할 수 있습니다.
'DB > Oracle' 카테고리의 다른 글
[Oracle] 순위 매기는 함수 RANK(), DENSE_RANK(), ROW_NUMBER() 비교 (0) | 2021.02.18 |
---|---|
[Oracle] WITH절 사용법 (0) | 2021.02.18 |
[Oracle] TRIM, LTRIM, RTRIM 함수 사용방법 (0) | 2021.02.15 |
[Oracle] SQL 중복제거 DISTINCT 사용법 (0) | 2021.02.08 |
[Oracle] EXISTS와 IN 함수 차이 비교 (3) | 2021.02.04 |
댓글