hive中表关联时null和‘’的问题

本文探讨了在Hive中进行表关联时,如何处理null和空字符串('')的问题。通过实验发现,当关联不匹配时,int类型的字段返回的不是null,而与''比较总是false,导致is null条件不生效。相反,string类型的字段在关联不上时返回null。因此建议在使用where子句时,尤其是想要筛选关联后不存在的数据,应避免使用数值类型字段,优先选择string类型字段。
摘要由CSDN通过智能技术生成

在hive开发过程中,我们经常会有这样的疑问,a表关联b表,我想找到a表中的键在b表中不存在的数据,这时候用a表左连b表,然后where条件中加入b.flied is null。 但是细心的人会有这样的疑问,两个表关联之后,如果关联不上,b表字段的返回值真的都是null吗???

下面我们来做个测试,测试表tmp.tmp_citys,表结构如下:
在这里插入图片描述
表中的数据:

数据

sql:
select
t1.city_id,t1.city_name ,t2.city_id ,t2.city_name ,
t2.city_id is null city_id为null,
t2.city_id is not null city_id不为null,
t2.city_id = ‘’ city_id为‘’,
t2.city_id <> ‘’ city_id不为‘’,
t2.city_name is null city_name为null,
t2.city_name is not null city_name不为null,
t2.city_name = ‘’ city_name为‘’,<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值