Question

Je l'ai construit une requête qui contient UNION ALL, mais les deux parties de celui-ci ont pas le même type de données. Je veux dire, je dois afficher une colonne mais la format des deux colonnes, d'où je reçois les données ont des différences. Donc, si je reçois un exemple:

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 qu'une longueur de 15 est de et la longueur de b est 13. Il n'y a pas de chiffres après la virgule flottante. En utilisant les chiffres, varchar, entier et la décimale ne fonctionnait pas. Je reçois toujours le message: Conversion de données ou erreur de données mapping . Comment puis-je convertir ces champs dans le même format?

Était-ce utile?

La solution 2

Je l'ai utilisé la fonction CAST pour convertir les colonnes de type dans le même type (varchar avec une grande longueur) .Donc i utilisé union sans problème. Quand je besoin de leur type d'origine, à nouveau, je l'ai utilisé la même fonction CAST (cette fois-i converti les valeurs en virgule flottante), et je suis le résultat que je voulais.

Autres conseils

J'ai « a » et « d » aucune expérience DB2, mais tu ne peux pas jeter aux mêmes types. Ce sont assez grands pour gérer les deux formats, évidemment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top