select to_char(num, 'fm999,999,999,999,999,999.9999') from daul;
여기서 문제가 DB에 123,456,789.000으로 들어오면 결과가
123,456,789.
이렇다.
즉 포맷'9'는 없으면 공백으로 처리하기에 0으로 표시하는 '0' 포맷을 지정해 줘야한다.
select to_char(num, 'fm999,999,999,999,999,990.0000') from daul;
그러면~ 123,456,789.0000 잘 나온다.
^^아래는 부가설명이군.
출처 : http://blog.daum.net/schlafer/40
http://devday.tistory.com/1727
-- 소수점 둘째자리로 반올림.
SQL> SELECT ROUND(57.126, 2) "결과" FROM DUAL;
결과
-----------
57.13
-- 소수점 둘째자리 이후로 버림.
SQL> SELECT TRUNC(57.126, 2) "결과" FROM DUAL;
결과
-----------
57.12
-- 소수점 둘째자리로 올림.
-- 직접 사용할 수 있는 함수는 없으며, 아래 두가지 예와 같이 응용하여 처리
SQL> SELECT TRUNC(57.123 + 0.009, 2) "결과" FROM DUAL;
결과
-----------
57.13
SQL> SELECT ROUND(57.123 + 0.004, 2 ) "결과" FROM DUAL;
결과
-----------
57.13
-- 정수 57을 57.00 과 같이 표시하기
SQL> SELECT TO_CHAR(57, 'FM90.00') "결과" FROM DUAL;
결과
------
57.00
* 추가설명
- 'FM90.00' 에서 '9'는 해당 자리수에 해당되는 숫자(여기선 '5')가 있는 경우에는 해당 숫자를 표시하고, 없는 경우에는 공백으로 표시한다.
- 'FM90.99' 에서 '0'는 해당 자리수에 해당되는 숫자(여기선 '7')가 있는 경우에는 해당 숫자를 표시하고, 없는 경우에는 '0'으로 표시한다.
- 'FM90.99' 에서 'FM'는 결과값의 좌우에 있는 공백을 제거한다.
# TO_CHAR()의 'FM90.0'의 의미
쿼리 내에 다음과 같은 부분이 있다고 하자.
'FM90.0'의 의미는 다음과 같다.
'9'는 해당 자리 숫자를 의미하고, 없을 경우 공백으로 표시.
'0'은 해당 자리 숫자를 의미하고, 없을 경우 '0'으로 표시.
'FM'은 좌우 공백 제거.
'아이티 > oracle&DB' 카테고리의 다른 글
decode의 활용법 (0) | 2011.12.15 |
---|---|
오라클함수 rank()와 dense_rank()의 차이점 (0) | 2011.11.18 |
오라클에서 Table 정보 및 Column정보 조회하기 / 데이터사전 (0) | 2011.11.17 |
msvcp71.dll msvcr71.dll 오류 해결법 (0) | 2011.04.13 |
[ORACLE/SQL] 함수 - 숫자함수 (0) | 2010.02.22 |
Java를 이용한 CLOB, BLOB 조작법 (0) | 2009.11.10 |
DataType 중 Blob을 아세요...??? (0) | 2009.11.10 |
oracle에서 access방법 (0) | 2009.09.29 |
랜덤하게 시리얼번호(serial number) 생성하기 (0) | 2009.02.13 |
시간간격을 년, 개월, 일수로 보기 (0) | 2009.02.13 |