1

我已经构建了一个包含 UNION ALL 的查询,但是它的两个部分具有不同的数据类型。我的意思是,我必须显示一列,但两列的格式,我从中获取数据的地方有差异。所以,如果我得到一个例子:

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

a 和 d 是数字,但格式不同。表示a的长度为15,b的长度为13。浮点数后面没有数字。使用数字、varchar、整数和小数不起作用。我总是收到消息:数据转换或数据映射错误。我怎样才能以相同的格式转换这些字段?

4

2 回答 2

1

我没有 DB2 经验,但您不能将 'a' 和 'd' 强制转换为相同的类型。显然,这足以处理这两种格式。

于 2009-09-24T14:55:59.230 回答
1

我已经使用 cast 函数将列类型转换为相同的类型(长度较大的 varchar)。所以我使用联合没有问题。当我需要它们的原始类型时,我再次使用相同的转换函数(这次我将值转换为浮点数),我得到了我想要的结果。

于 2009-09-28T07:24:02.657 回答