2009-09-24 7 views
1

J'ai construit une requête qui contient UNION ALL, mais les deux parties n'ont pas le même type de données. Je veux dire, je dois afficher une colonne, mais le format des deux colonnes, d'où je reçois les données ont des différences. Donc, si je reçois un exemple:UNION avec différents types de données dans le serveur db2

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

a et d sont des nombres, mais ils ont le format différent. Cela signifie que sa longueur est 15 et la longueur de b est 13. Il n'y a pas de chiffres après le point flottant. L'utilisation des chiffres, varchar, entier et décimal ne fonctionnait pas. Je reçois toujours le message: Erreur de conversion de données ou de mappage de données. Comment puis-je convertir ces champs dans le même format?

Répondre

1

J'ai utilisé la fonction de moulage pour convertir le type de colonnes dans le même type (varchar avec une grande longueur) .So j'ai utilisé union sans problèmes. Quand j'avais besoin de leur type d'origine, de retour, j'ai utilisé la même fonction de moulage (cette fois, j'ai converti les valeurs en float), et j'ai obtenu le résultat que je voulais.

1

Je n'ai pas d'expérience DB2 mais vous ne pouvez pas lancer un '0' & 'd' avec les mêmes types. Qui sont assez grands pour gérer les deux formats, évidemment.

+0

Merci, pour votre réponse! – Jolma

Questions connexes