2016-01-13 33 views
0

我们有一个要求,在我们试图使用informatica云为2个不同数据库的表执行联合操作时,我们没有联合转换。所以试图探索这是否可以使用左/全外连接执行?使用连接执行联合而不是联合所有

select * from t join p on t.id = p.id 
union 
select * from t join p on t.id = p.id2 

注:并非UNION ALL只联盟

+0

T是从Teradata和p是从Oracle,我们正在努力加入t和p两次。所以发布的查询在我们的数据提取方面是正确的 –

回答

1

unionunion all之间的区别仅仅是去除不同值的。您的问题的答案是,您可以使用一堆coalesce()语句,select distinctfull join来模拟union

但是,为什么不只是做:

select * 
from t join 
    p 
    on t.id in (p.id, p.id2); 

根据数据,你可能需要select distinct

select distinct * 
from t join 
    p 
    on t.id in (p.id, p.id2); 
这里