UNIÃO com diferentes tipos de dados em servidor DB2
Pergunta
Eu construí uma consulta que contém UNION ALL, mas as duas partes dele não têm o mesmo tipo de dados. Quer dizer, eu tenho que exibir uma coluna, mas o formatar das duas colunas, de onde eu recebo os dados têm diferenças. Então, se eu conseguir um exemplo:
select a,b
from c
union all
select d,b
from e
a e d são números, mas eles têm formato diferente. Isso significa que o comprimento de um é de 15 e comprimento de b é 13. Não há dígitos após o ponto flutuante. Usando dígitos, varchar, integer e decimal não funcionou. Eu sempre recebo a mensagem: A conversão de dados ou mapeamento de dados de erro . Como posso converter esses campos no mesmo formato?
Solução 2
Eu tenho usado a função de conversão para converter o tipo de colunas para o mesmo tipo (varchar com um comprimento grande) .Assim eu usei união sem problemas. Quando eu precisava de seu tipo original, de volta, eu usei a mesma função de conversão (desta vez eu converti os valores em float), e eu tenho o resultado que eu queria.
Outras dicas
Eu não tenho nenhuma experiência DB2, mas você não pode simplesmente lançar 'a' e 'd' para os mesmos tipos. Que são grandes o suficiente para lidar com ambos os formatos, obviamente.