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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top