Teradata UNION работает некорректно. пустые значения для столбца при использовании UNION - PullRequest
0 голосов
/ 04 мая 2020

Интересно, сталкивался ли кто-нибудь с этой проблемой раньше. У меня есть следующий запрос, в котором никогда не было проблем с базой данных сервера 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'  
...