如果我的where条件使用Hive给出空输出,如何显示表中的所有记录

时间:2018-06-18 23:08:59

标签: sql hive

当我的where条件返回空输出时显示表的所有记录

EX:
Data:
x,y
1,2
2,3
3,4

select * from table where x=1 ;
output
x,y
1,2

select * from table where x=10 ;

通常它会给我一个空输出而不是它应该在表中显示整个记录。

Output
x,y
1,2
2,3
3,4

在这种情况下,在x数据中不会出现提供的值,因此,它应该显示表

中的所有值

1 个答案:

答案 0 :(得分:0)

一种方法是:

with t as (
      select *
      from table
      where x = 1 
     )
select t.*
from t
union all
select t2.*
from table t2
where not exists (select 1 from t);

如果x是唯一的,则另一种有趣的方法有效:

select t.*
from table t left join
     table t2
     on t2.x = 1 
where (t2.x = 1 and t.x = 1) or (t2.x is null);