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

StackOverflow https://stackoverflow.com/questions/1472196

  •  16-09-2019
  •  | 
  •  

Вопрос

Я построил запрос, который содержит 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» к одним и тем же типам?Очевидно, они достаточно велики, чтобы обрабатывать оба формата.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top