TO_CHAR를 사용하여 숫자를 문자로 변환하면 소수점 이상이 0일 경우 점(.)으로만 표시되어 변환이 된다. 아래와 같은 포맷(FORMAT) 옵션을 활용하여 변환된 수치 값의 형태를 결정할 수 있다.


SELECT TO_CHAR(0.40, 'FM9990.99')          STR

        , RTRIM(TO_CHAR(4, 'FM9990.99'),'.')  STR2 --정수일경우 소수점표시 안함 (RTRIM)

  FROM DUAL

;

--STR : 0.4       

--STR2 : 4


FM9990.99의 의미

9는 해당 자리의 숫자를 의미하고 값이 없을 경우 소수점 이상은 공백으로 소수점 이하는 0으로 표시한다.

0은 해당 자리의 숫자를 의미하고 값이 없을 경우 0으로 표시하며 숫자의 길이를 고정적으로 표시 할 때 주로 사용한다.

FM은 좌우 9로 치환된 소수점 이상의 공백 및 소수점 이하의 0을 제거 한다.



[추가설명]

FM을 넣지 않을 경우 숫자소수점 이상은 공백으로 소수점 이하는 0이로 표시된다.



9는 가변적인 값이어서 0이거나 숫자가 존재하지 않을 시 값을 버린다.



0은 해당 값의 길이가 고정적으로 변환이 된다. 변환된 숫자의 길이를 일정하게 맞추고 싶으면 길이만큼 0으로 채우면 된다.



변환될 숫자의 길이보다 포맷의 길이가 작으면 오류가 발생한다.

포맷을 지정 시 변환될 숫자의 길이보다 최대 개수만큼 9 또는 0을 채워야 한다.


출처: http://gent.tistory.com/49

+ Recent posts