DB/Oracle

[Oracle] TO_CHAR 숫자 포맷(Format) 형식 _ FM표기법

콩다영 2021. 2. 16.
728x90

오라클 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 함수는 숫자 포맷팅에 매우 강력하고 유연한 기능을 제공합니다.

다양한 포맷 옵션을 사용하면 숫자를 읽기 쉽고, 일관된 형식으로 출력할 수 있어 실무에서 매우 유용합니다. 

이러한 포맷팅 기능을 적절히 활용하면 보고서, 데이터 시각화, 재무 보고 등 다양한 비즈니스 애플리케이션에서 숫자 데이터를 효과적으로 표현할 수 있습니다.

 

 

728x90
반응형

댓글