2017-01-05 11 views
0

2つのハイブテーブルがあり、両方のテーブルにデータがある場合にのみ結合を行いたいと思います。テーブルの1つが空の場合、結合が発生しないようにします。 は、私はそれは文句を言わないcase文の中に評価を行うことを可能にするハイブのように見えますがハイブで条件付き結合を行う方法

select count(*) as val 
case 
when val > 0 then <do join of table1 and table2 here> 
else 
    <do nothing> 
end 
from table2 

ような何かをするだろう意図でcase文を模索しようとしたので、このアプローチは動作しません。誰でも、これをハイブでどのように実行するかに関する入力があります。

+0

Table1とTable2の間で外部結合を試みることができます。 –

+0

この機能はSQLにはありません。あなたのロジックをスクリプトに挿入します:両方のテーブルのカウントレコード。両方のカウンタが0より大きい場合は結合します – belostoky

+0

@rajat左外部結合によって結合操作が行われます。私の必要性は、必要でないときに完全に排除することです。 – user2051590

答えて

0
select * 
from TableA as a 
left join TableB as b 
on b.A_Id = a.A_Id 
where 
    b.A_Id is not null or 
    not exists (select top 1 A_Id from TableB) 

ここには私が出会ったSourceがあります。