소수점 포함, 숫자형식을 원하는 문자 포맷데로 보여주기? 0 5 210

by 동동동 [SQL Query] [2021.02.17 09:06:02]


안녕하세요..소숫점이 포함된 수를 원하는 포맷형식으로 표시하려고 하는데요..

 

WITH TMP AS (
SELECT 12.367 NUM FROM DUAL UNION ALL
SELECT 568    NUM FROM DUAL UNION ALL
SELECT 0.3898 NUM FROM DUAL UNION ALL
SELECT .2     NUM FROM DUAL UNION ALL
SELECT 10.3   NUM FROM DUAL
)
SELECT ROUND(NUM, 2), TO_CHAR(ROUND(NUM, 2)) FROM TMP

 

ROUND(NUM,2) TO_CHAR(ROUND(NUM,2)) 원하는형식
12.37 12.37 12.37
568 568 568.00
0.39 .39 0.39
0.2 .2 0.20
10.3 10.3 10.30

 

위의 표에서 원하는 형식처럼 무조건 소수점 뒤 두자리를 표시하고 정수자리에는 정수가 없으면 0 으로 표시되게 하고 싶은데요..

 

도움 부탁드립니다...감사합니다..

 

by pajama [2021.02.17 09:37:27]

TO_CHAR를 아래처럼 해봤습니다~

SELECT ROUND(NUM, 2), TO_CHAR(ROUND(NUM, 2)), TO_CHAR(NUM,'990.99') FROM TMP;

 


by 동동동 [2021.02.17 10:26:05]

답글 감사드립니다..

 

정수자릿수가 오버되면 #으로 표시되어 버리네요..ㅠㅠ


by 마농 [2021.02.17 10:31:15]
WITH tmp AS
(
SELECT 12.367 num FROM dual
UNION ALL SELECT 568      FROM dual
UNION ALL SELECT   0.3898 FROM dual
UNION ALL SELECT    .2    FROM dual
UNION ALL SELECT  10.3    FROM dual
)
SELECT num
     , TO_CHAR(num, 'fm999999999990.00') x
  FROM tmp
;

 


by 동동동 [2021.02.17 12:23:52]

마농님 답변 감사드립니다..

마농님 답변에도 999999999990 의 정수 자릿수를 넘어서면 #으로 표시되네요..

 

결국 최대 나올수 있는 정수자리로 선언을 해야 하는건가요?

 


by 마농 [2021.02.17 12:51:41]
WITH tmp AS
(
SELECT 12.367 num FROM dual
UNION ALL SELECT 568      FROM dual
UNION ALL SELECT   0.3898 FROM dual
UNION ALL SELECT    .2    FROM dual
UNION ALL SELECT  10.3    FROM dual
)
SELECT num
     , TO_CHAR(num, 'fm999999999999999999999999999999999999999999999999999999999990.00') x
  FROM tmp
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입