UNION с разными типами данных на сервере db2
Вопрос
Я построил запрос, который содержит Union All, но две его части не имеют одинакового типа данных.Я имею в виду, я должен отобразить один столбец, но формат двух столбцов, откуда я получаю различия.Итак, если я получу пример:
select a,b
from c
union all
select d,b
from e
a и d — числа, но они имеют разный формат.Это означает, что длина A составляет 15, а длина B - 13.После плавающей точки нет цифр.Использование цифр, varchar, целых и десятичных чисел не работало.Я всегда получаю сообщение: Ошибка преобразования или сопоставления данных.Как я могу преобразовать эти поля в один и тот же формат?
Решение 2
Я использовал функцию приведения для преобразования типа столбцов в тот же тип (varchar большой длины). Поэтому я без проблем использовал объединение.Когда мне снова понадобился их исходный тип, я использовал ту же функцию приведения (на этот раз я преобразовал значения в число с плавающей запятой) и получил желаемый результат.
Другие советы
У меня нет опыта работы с DB2, но не можете ли вы просто привести «a» и «d» к одним и тем же типам?Очевидно, они достаточно велики, чтобы обрабатывать оба формата.