Интересно, сталкивался ли кто-нибудь с этой проблемой раньше. У меня есть следующий запрос, в котором никогда не было проблем с базой данных сервера SQL, но теперь у меня проблема с Teradata.
Когда выполняется каждый из отдельных операторов SELECT
, все столбцы содержат данные. При запуске вместе с UNION, как показано ниже, второй оператор SELECT
дает пустые значения для столбца «SR.yyy». Аналогичным образом, если я поменяю местами операторы SELECT (т.е. первый оператор SELECT теперь стоит после UNION и наоборот), тогда столбец «SR.yyy» будет содержать значения, однако столбец «SG.xxx» станет пустым. Непонятно.
Примечание: все столбцы имеют один и тот же тип данных.
SELECT AA.name, AA.id, SG.xxx, '' as yyy
FROM DATABASE1 AA
LEFT JOIN DATABASE_SG SG ON AA.id = SG.id
WHERE AA.name = 'John.Doe'
UNION
SELECT AA.name, AA.id, '' as xxx, SR.yyy
FROM DATABASE1 AA
LEFT JOIN DATABASE_SR SR ON AA.id = SR.id
WHERE AA.name = 'John.Doe'