比如说,我有一张Hive桌 emp_details(name, dept) .在这个表中,我需要检查是否存在 dept = ‘a’ 然后选择这些记录。如果找不到这样的记录,那么只有我会选择带有 dept = ‘b’ . 源数据具有 'a' 或者 'b' 作为 dept 值和我的结果集将包含 'a' 或者 'b' 不是两者都有。问题是,对于这个问题,我只能使用一个配置单元查询。
emp_details(name, dept)
dept = ‘a’
dept = ‘b’
'a'
'b'
dept
jljoyd4f1#
计算\u exist标志并将其用于筛选:
select name, dept from (select name, dept, (count(case when dept='a' then 1 end) over()>0) as a_exist from test_a )a where (a_exist and dept='a') --only a if exists or ((NOT a_exist)and dept='b') --return b if a not exists ;
1条答案
按热度按时间jljoyd4f1#
计算\u exist标志并将其用于筛选: