hive中用not in查询正确数据,返回值为空
Posted 清欢渡12138
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive中用not in查询正确数据,返回值为空相关的知识,希望对你有一定的参考价值。
原因:
Hive中的not in函数有一个隐藏的陷阱,当not in() 中的数值包含NULL,匹不上的数据会返回NULL而不是True。
所以当在where中使用not in子查询进行筛选,一定要记得去除NULL值
1、问题
在工作中遇到下面这样一个事情
select *
from tablename
wehre id not in (select id from tablename2)
这个语句看似没有问题,但是你查询符合条件的id,返回值缺为null
经查验资料发现,not in 后面的数据中不能包含null值,不然返回的数据就会是空值
正确写法如下
select *
from tablename
wehre id not in (select id from tablename2 where id is null)
以上是关于hive中用not in查询正确数据,返回值为空的主要内容,如果未能解决你的问题,请参考以下文章