UNION с разными типами данных на сервере db2

Я создал запрос, содержащий UNION ALL, но две его части имеют разные типы данных. Я имею в виду, что мне нужно отображать один столбец, но формат двух столбцов, откуда я получаю данные, имеет различия. Итак, если я получу пример:

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

a и d - числа, но имеют другой формат. Это означает, что длина a равна 15, а длина b равна 13. После числа с плавающей запятой нет цифр. Использование цифр, varchar, целых и десятичных чисел не сработало. Я всегда получаю сообщение: Ошибка преобразования или сопоставления данных. Как я могу преобразовать эти поля в один формат?


person Jolma    schedule 24.09.2009    source источник


Ответы (2)


У меня нет опыта работы с DB2, но вы не можете просто преобразовать 'a' и 'd' к одним и тем же типам. Очевидно, этого достаточно, чтобы обрабатывать оба формата.

person Matt Lacey    schedule 24.09.2009

Я использовал функцию приведения, чтобы преобразовать тип столбцов в тот же тип (varchar с большой длиной), поэтому я без проблем использовал объединение. Когда мне снова понадобился их исходный тип, я использовал ту же функцию приведения (на этот раз я преобразовал значения в float) и получил желаемый результат.

person Jolma    schedule 28.09.2009