2013-10-11 20 views
0

非常簡單。Hive選擇與WHERE元組輸入條件

SELECT something FROM table WHERE (a,b) IN ((a_1,b_1),...,(a_n,b_n)) 

這適用於MySQL,但不適用於Hive。有沒有解決方法?我嘗試了類似於

WHERE array_contains(array(array(a_1,b_1),...,array(a_n,b_n)), array(a,b)) 

但array_contains似乎只適用於原始類型。

編輯:在我的具體情況記錄,(A,B)是(年,月,日),所以我在理論上可以利用最新的功能,不過,我認爲這是一個有點怪異,這ISN」 t支持。

回答

0

OK到目前爲止,我發現的唯一的解決方法是

WHERE ((a=a_1 AND b=b_1) OR ... OR (a=a_n AND b=b_n)) 

,因爲它的將是自動生成的,但仍然會是不錯的上述功能是正常...

+0

另一解決方法:'concat(a,b)in(concat(a1,b1),concat(a2,b2).. concat(an,bn))''。也許可以使用'concat_ws()'來添加間距字符。不知道如何處理空值。 – libjack