[Oracle] 소수점 앞 0 표시, 소수점 2자리 표시 (자릿수 고정)
- 데이터베이스/오라클
- 2023. 8. 1.
오라클 쿼리문에서 소수점 앞에 "0"을 표시하거나 소수점 자릿수를 고정하기 위해서는 TO_CHAR 함수를 사용하여 문자로 변환하면 된다. 오라클에서 숫자형식은 소수점 앞에 값이 없을 경우 "0"을 표시하지 않지만, 숫자를 문자 형식으로 변경하여 원하는 형태의 값을 만들 수 있다. 그러나 수치 값을 문자로 변환하는 과정에서 형식이 일치하지 않으면 오류가 발생할 수 있으니 아래의 주의사항을 꼭 확인하기 바란다.
RTRIM(TO_CHAR("수치 값", "포맷"), '.') 예) RTRIM(TO_CHAR(123.456, 'FM9990.99'), '.') |
목차 |
소수점 앞 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')의 자릿수는 수치 값에 올 수 있는 최대 자릿수로 입력하는 것이 좋다.
포맷의 자릿수를 초과하면 문자로 변환되지 못하고 "#"으로 표시된다.