Oracle/공부

[SQL] TO_CHAR(FM) 표기법(숫자 포맷)

maango97 2025. 1. 13. 17:47

 

FM(Fill Mode)은 SQL TO_CHAR 함수의 옵션 중 하나로 FM을 이용해 숫자를 원하는대로 포맷하거나 공백을 제거할 수 있다. 보통 9와 0을 이용해서 포맷을 하는 것이 일반적인데 9와 0은 각각 다음의 기능을 한다.

 

 

9 : 해당 자리에 숫자가 없으면 표기 X

0 : 해당 자리에 숫자가 없으면 0으로 표기

 

 

이해를 돕기 위해 아래 쿼리를 실행해보면 

SELECT TO_CHAR(123, '99999'),
       TO_CHAR(123, '00000')
FROM DUAL;

 

결과는 아래와 같다.

-> 0은 해당 자리에 숫자가 없으면 0으로 채우고 있는 것을 확인 가능

 

 

 

또, SQL에서는 소수점 위의 숫자가 없으면 '.1', '.2' 식으로 앞에 0이 사라져서 출력되는데 이를 수정하기 위해서 FM을 사용하면 된다.

 

예시:

SELECT TO_CHAR(0.1, 'FM0.9')
FROM DUAL;

 

결과:

 

 

FM을 사용하여 큰 숫자에 천 단위 표시를 해주는 방법도 있다.

 

예시:

SELECT TO_CHAR(1234567.89, '9,999,999.99') 
FROM DUAL;

 

결과:

 

 

특정 소수점 아래자리까지 표기하고 싶다면 아래와 같이 입력하면 된다.

 

예시:

SELECT TO_CHAR(7.5, '999.00')
FROM DUAL;

 

결과: