소수점 자리수 표시 질문 0 5 6,786

by DDRCHO [Oracle 기초] 소수점 소수점자리수 [2013.04.10 16:01:54]


안녕하세요.
ORACLE 소수점 자리수 처리 관련하여 질문드릴것이 있습니다.

글로 설명하기보단 예시로 설명드리고자 합니다.

-- 예시 --
기본값    소수자리수    결과값
1 1 1.0
1.567    2 1.57
3.4 3 3.400

"기본값"과 "소수자리수"의 경우 Record로 갖고있고,
Query를 통하여 결과값을 가져와야합니다.

소수자리수 컬럼의 값에 맞춰서 값을 가져와야하는데
to_char(n, 'FM999.99999') 같은 방식으로는 구현이 힘드네요...

도움을 요청드립니다.
수고하십시오.
by 마농 [2013.04.10 16:25:11]
WITH t AS
(
SELECT 1 c1, 1 c2 FROM dual
UNION ALL SELECT 1.567, 2 FROM dual
UNION ALL SELECT 3.4, 3 FROM dual
UNION ALL SELECT 0, 0 FROM dual
)
SELECT c1, c2
     , RTRIM(TO_CHAR(c1, 'fm990.'||LPAD('0', c2, '0')), '.') c3
  FROM t
;

by 디케이 [2013.04.10 16:25:14]
 
WITH t(n, s) AS(
   SELECT 1, 1 FROM dual
UNION ALL SELECT 1.567, 2 FROM dual
UNION ALL SELECT 3.4, 3 FROM dual
)
SELECT to_char(round(n, s), 'FM999'||decode(s, 0, '', RPAD('.', (s+1), '0')))
 FROM t
 

by 우리집아찌 [2013.04.10 16:36:02]
댓글달려다 짜고 와보니.. 챙피해서 포기합니다. ^^*

FM990 한참 생각했씁니다.
1이하때문에 쓰셨군요.. 생각못했어요.

by 아발란체 [2013.04.10 16:44:58]

항상 아래 마농님이 댓글로 마무리가 되지만..
전 챙피해도 쓰는데... ㅋ


by 디케이 [2013.04.10 16:50:28]

round() 안해도 자동 반올림이 되네요 ..
0일때도 생각못했고 --> 요건 수정

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