2009-09-24 1 views
1

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

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

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

ответ

1

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

1

У меня нет опыта DB2, но вы не можете просто нарисовать 'a' & 'd' для тех же типов. Очевидно, что они достаточно большие, чтобы обрабатывать оба формата.

+0

Спасибо, за ваш ответ! – Jolma

 Смежные вопросы

  • Нет связанных вопросов^_^