Hive 如何比较配置单元中不同表中具有空值的两列

Hive 如何比较配置单元中不同表中具有空值的两列,hive,null,compare,Hive,Null,Compare,我们有两张桌子:A桌和B桌。TableA有空值。我想比较a.columnA和b.columnA 选择计数(*) 从表a 加入表b 在a.ID=b.ID上 还有a.columnA=柱状芽胞杆菌 预期结果应为2,但实际结果为零。此查询不比较空值。如何比较具有空值的列?使用(空安全相等运算符)求反比较,如果其中一个操作数为null,则返回FALSE,但当两个操作数均为null且两个操作数具有相等的非空值时,返回TRUE select sum(cast(not a.columnA <=> B

我们有两张桌子:A桌和B桌。TableA有空值。我想比较a.columnA和b.columnA

选择计数(*) 从表a 加入表b 在a.ID=b.ID上 还有a.columnA=柱状芽胞杆菌

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

使用
(空安全相等运算符)求反比较,如果其中一个操作数为
null
,则返回
FALSE
,但当两个操作数均为
null
且两个操作数具有相等的非空值时,返回
TRUE

select sum(cast(not a.columnA <=> B.columnA) as int) 
From tableA a 
join tableB b on a.ID=b.ID
选择sum(cast(非a.columnA B.columnA)作为int)
从表a
在a.ID=b.ID上连接表b
使用
(空安全相等运算符)求反比较,当其中一个操作数为
null
时返回
FALSE
,但当两个操作数均为
null
且两个操作数的非空值相等时返回
TRUE

select sum(cast(not a.columnA <=> B.columnA) as int) 
From tableA a 
join tableB b on a.ID=b.ID
选择sum(cast(非a.columnA B.columnA)作为int)
从表a
在a.ID=b.ID上连接表b
从表a中选择计数(*),在a.ID=b.ID上连接表b并合并(a.columnA,'1')=柱状芽胞杆菌

当我在a.ID=b.ID和coalesce(a.columnA,'1')上使用coalesce时,它可以工作=柱状芽胞杆菌


当我使用coalesce时,它可以工作。嗨,Vamsi,不工作,但我发现它可以与coalesce(a.columnA,'1')一起工作=BcolumnA@Anson .. 查看编辑。不建议使用
coalesce
进行此类比较,因为表B将来可能有
null
s,并且列值可能有
coalesce
中使用的默认值。您好,Vamsi不起作用,但我发现它与coalesce(a.columnA,'1')一起工作=BcolumnA@Anson .. 检查编辑。不建议使用
coalesce
进行此类比较,因为表B将来可能有
null
s,并且列值可能有
coalesce
中使用的默认值。。