DECIMAL형의 데이터를 CHAR로 바꿀때 '0....00' 없애기.


테이블에 아래와 같은 'A' 컬럼이 있습니다.


COLUMN : A   DECIMAL(9,1)
 (A컬럼은 소수값을 1자리수를 가지는 컬럼입니다.)

컬럼 값 : 100.2
쿼리 : SELECT A FROM XXXX
결과 : 100.2

그냥 사용한다면 문제가 발생하지 않지만 만약에
결과값에 문자열'(..)'을 더하여 (100.2) 같은 결과를 받고 싶습니다.

간단하게 생각해보면 아래와 같이 하면 될 것 같은데 잘 안됩니다.
SELECT '('||A||')' FROM XXXX

이럴때 A를 CHAR 형으로 바꾸면 문자열 연결이 됩니다.
SELECT '('||CHAR(A)||')' FROM XXXX
결과는 아래와 같습니다
(00000000000000000000000100.2)

문자열 연결은 성공하였지만 앞에 0이 붙어버렸습니다 ㅠㅠ.

이때 가장 간단한 방법은 INTEGER 형으로 변환을 하면 해결됩니다.
하지만 소수값이 사라진다는 단점이 있습니다.
SELECT CHAR(INT(A)) FROM XXXX 또는 SELECT CHAR(INTEGER(A)) FROM XXXX

하지만 INTEGER 로 변환을 하게 되면 소수값은 사라지게 됩니다.
결과 : 100




'DataBase > DB2' 카테고리의 다른 글

DB2 테이블 수정시 잠김 Table Lock 해결  (0) 2009.05.06
DB2 자주 쓰는 함수 모음.  (0) 2009.02.27
DB2 사용에 대한 Hint & Tips  (0) 2009.02.23