반응형
[Oracle] 숫자 0.5 문자 변환 시 ".5" ? "0.5" 로 표시하기
TO_CHAR를 사용하여 숫자인 0.5를 문자로 변환하면 ".5"로 소수점 이상이 0일 경우 점(.)으로만 표시되어 변한된다.
FM (FORMAT) 옵션을 활용하여 변환할 수치 값의 포맷을 설정해보자.
- FM9990.99
① 9 : 해당 자리의 숫자를 의미한다.
- 값이 없을 경우 소수점 이상은 공백, 소수점 이하는 0으로 표시한다.
② 0 : 해당 자리의 숫자를 의미한다.
- 값이 없을 경우 0으로 표시하며 숫자의 길이를 고정적으로 표시할 때 주로 사용한다.
③ FM : 좌우 9로 치환된 소수점 이상의 공백 및 소수점 이하의 0을 제거한다.
- 예제
SELECT TO_CHAR(0.50, 'FM9990.99')
FROM SYS.DUAL
SELECT TO_CHAR(0.50, '99.999')
FROM SYS.DUAL
- FM을 넣지 않을 경우 소수점 이상의 숫자는 공백, 소수점 이하 숫자는 0으로 표시된다.
SELECT TO_CHAR(0.50, 'FM99.999')
FROM SYS.DUAL
- 9는 가변적인 값이어서 0이거나 숫자가 존재하지 않을 시 값을 버린다.
SELECT TO_CHAR(0.50, 'FM900.000')
FROM SYS.DUAL
- 0은 해당 값의 길이가 고정적으로 변환이 된다.
변환된 숫자의 길이를 일정하게 맞추고 싶으면 길이만큼 0으로 채우면 된다.
SELECT TO_CHAR(1000.50, 'FM900.000')
FROM SYS.DUAL
- 변환될 숫자의 길이보다 포맷의 길이가 작으면 오류가 발생한다.
포맷을 지정 시 변환될 숫자의 길이보다 최대 개수만큼 9 또는 0을 채워야 한다.
728x90
반응형
'Database > SQL' 카테고리의 다른 글
[MySQL] 원하는 구분자 기준으로 문자열 자르기 : SUBSTRING_INDEX (0) | 2020.11.06 |
---|---|
[HeidiSQL] HeidisSQL 에서 조회한 데이터 엑셀 내보내기 (8) | 2020.07.23 |
[Oracle] 자동증가 SEQUENCE 생성, 조회, 삭제 (0) | 2020.04.08 |
[Oracle] LPAD, RPAD 함수 사용하여 공백 채우기 "0 채우기" (2) | 2020.04.03 |
[Oracle] ORA-00904 : 부적합한 식별자 invalid identifier 오류 (1) | 2020.02.17 |
댓글