2009-09-24 5 views
1

UNION ALL을 포함하는 쿼리를 만들었지 만 두 부분 인 은 동일한 데이터 유형이 아닙니다. 내 말은, 내가 하나의 열을 표시해야하지만, 두 개의 열의 형식이 있는데, 어디에서 데이터가 달라지는 지 알 수 있습니다. 내가 예를 얻는 경우에 그래서 :UNION이 db2 서버의 다른 데이터 유형을 사용합니다.

select a,b 
from c 
union all 
select d,b 
from e 

A와 D는 숫자,하지만 그들은 다른 형식을 가지고있다. a의 길이는 15 이고 b의 길이는 13임을 의미합니다. 부동 소수점 뒤에 숫자가 없습니다. 숫자를 사용하면 varchar, 정수 및 소수점이 작동하지 않습니다. 나는 항상 메시지를받습니다 : 데이터 변환 또는 데이터 매핑 오류. 이 필드를 같은 형식으로 변환하려면 어떻게해야합니까?

답변

1

캐스트 유형을 동일한 유형 (길이가 큰 varchar)으로 변환하는 데 cast 함수를 사용했습니다. 그래서 문제없이 union을 사용했습니다. 원래 형식을 다시 필요로 할 때, 나는 같은 캐스팅 함수 (이번에는 float로 값을 변환)를 사용했고, 나는 원하는 결과를 얻었다.

1

DB2 환경은 없지만 '&'d '를 같은 유형으로 캐스팅 할 수는 없습니다. 이는 분명히 두 형식 모두를 처리 할 수있을만큼 충분히 큽니다.

+0

감사합니다. – Jolma

관련 문제