Hive中基于条件的查询执行

时间:2020-03-25 11:27:16

标签: hive

Hive中是否有基于条件的查询执行?

我必须连接两个表TAB_ATAB_B。当TAB_A.date1 <= TAB_B.date2时,从TAB_A中选择数据,否则,如果TAB_B.flag = 'V'然后从TAB_A中选择数据,否则从TAB_B中选择数据。

我已经尝试过如下所述的案例陈述,但是没有用 给出错误:“编译语句时出错:失败:ParseException行7:0无法识别表达式规范中'ELSE''((''b')附近的输入”

SELECT 
CASE 
WHEN ((b.id is NULL) OR (b.flag = 'O' and a.date1 <= b.date1)
OR (b.flag = 'V'))
then 
(a.id, a.date1,a.country,a.plt,'O')
else 
(b.id,b.date1,b.country,b.plt,b.flag)
END (as id,as date1,as country,as plt,as flag)
from TAB_A a JOIN TAB_B b on a.id=b.id
where a.date1 is NOT NULL;

0 个答案:

没有答案