如何在Hive

时间:2018-05-29 17:53:06

标签: hive null compare

enter image description here

我们有两个表:TableA和TableB。 TableA具有空值。我想比较a.columnA和b.columnA

选择计数(*) 来自tableA a 加入tableB b 在a.ID = b.ID上 和a.columnA!= B.columnA

期望结果应为2,但实际结果为零。此查询不会比较空值。如何比较具有空值的列?

2 个答案:

答案 0 :(得分:2)

使用<=> null-safe equality operator )否定比较,如果其中一个操作数为FALSEnull,则返回TRUE当两者都是null且两个操作数具有相等的非空值时。

select sum(cast(not a.columnA <=> B.columnA) as int) 
From tableA a 
join tableB b on a.ID=b.ID

答案 1 :(得分:1)

select count(*)from tableA a.ID = b.ID上的连接表B b和coalesce(a.columnA,'1')!= B.columnA

当我使用合并

时,它可以正常工作