[Oracle] 소수점 앞 0 표시, 소수점 2자리 표시 (자릿수 고정)

오라클 쿼리문에서 소수점 앞에 "0"을 표시하거나 소수점 자릿수를 고정하기 위해서는 TO_CHAR 함수를 사용하여 문자로 변환하면 된다. 오라클에서 숫자형식은 소수점 앞에 값이 없을 경우 "0"을 표시하지 않지만, 숫자를 문자 형식으로 변경하여 원하는 형태의 값을 만들 수 있다. 그러나 수치 값을 문자로 변환하는 과정에서 형식이 일치하지 않으면 오류가 발생할 수 있으니 아래의 주의사항을 꼭 확인하기 바란다.

 

RTRIM(TO_CHAR("수치 값", "포맷"), '.')
예) RTRIM(TO_CHAR(123.456, 'FM9990.99'), '.')

 

목차
  1. 소수점 앞 0 표시 방법
  2. 소수점 자릿수 고정 방법 (2자리)
  3. 소수점 이하의 값이 없을 경우 주의사항
  4. 수치 값이 클 경우 주의 사항

 

소수점 앞 0 표시 방법

SELECT TO_CHAR(0.345, 'FM9999.99')
     , TO_CHAR(0.345, 'FM9990.99')
  FROM dual

 

 

소수점 앞이 0인 경우 0을 표시하기 위해서는 TO_CHAR 함수를 사용하여 숫자를 문자로 변환해야 한다.

 

0: 값이 없을 경우 "0" 표시

9: 값이 없을 경우 표시 안 함

 

TO_CHAR(0.345, 'FM9990.99') : 소수점을 반올림하여 2자리 까지 표시 ( 0.345 → 0.35 )

 

소수점 자릿수 고정 방법 (2자리)

SELECT TO_CHAR(123.4, 'FM9990.99')
     , TO_CHAR(123.4, 'FM9990.00')
  FROM dual

 

 

소수점 이하에 표시하고자 하는 자릿수만큼 "0"을 입력한다.

해당 자릿수까지 값이 있으면 값을 표시하고 값이 없으면 "0"을 표시한다.

 

'FM9990.0' : 소수점 1자리 고정

'FM9990.00' : 소수점 2자리 고정

'FM9990.000' : 소수점 3자리 고정

 

소수점 이하의 값이 없을 경우 주의사항

SELECT TO_CHAR(123.0, 'FM9990.99')
     , RTRIM(TO_CHAR(123.0, 'FM9990.99'), '.')
  FROM dual

 

 

소수점 이하의 값을 고정하지 않았을 경우, 값이 없으면 맨 끝에 소수점만 표시될 수 있다.

이럴 경우를 대비하여 RTRIM 함수를 사용하여 맨 끝 소수점을 제거할 수 있다.

 

소수점을 문자로 변환할 때는 되도록이면 RTRIM 함수를 함께 사용하는 것이 좋다.

 

수치 값이 클 경우 주의 사항

SELECT RTRIM(TO_CHAR(123456.78, 'FM9990.99'), '.')      AS result1
     , RTRIM(TO_CHAR(123456.78, 'FM999999990.99'), '.') AS result2
  FROM dual

 

 

포맷('FM999999990.99')의 자릿수는 수치 값에 올 수 있는 최대 자릿수로 입력하는 것이 좋다.

포맷의 자릿수를 초과하면 문자로 변환되지 못하고 "#"으로 표시된다.

 

[Oracle] 오라클 TO_CHAR 함수 사용법 완벽 정리

오라클에서 쿼리문을 작성할 때 TO_CHAR() 함수는 날짜, 숫자 등의 값을 문자열로 변환하는 함수이다. 자주 사용하는 기본 함수이므로 아래의 다양한 변환 방법을 알고 있으면 많은 도움이 된다.

gent.tistory.com

 

댓글

Designed by JB FACTORY