HIVESQL IN 和 NOT IN

hive sql 在编写过程中难免会使用到 in 和 not in 的操作
in 和 not in 返回的是布尔值,在遇到NULL值的时候不会返回true和false
where a in (‘a’,‘b’) 指的是就只筛选出a等于a和b的集合,这个来说没什么问题
如果是 where a not in (‘a’,‘b’) 的时候,如果a列有NULL值的时候,这时候
NULL这一行不会记到最终的输出结果里,这可能和我们的初衷有偏差,我们只是不要a,b的这个集合,这样算出的结果会少于我们理想的输出结果
在hive中不等于和not in 类似,都会将为null的数据过滤掉
如果想保留为null的数据,可以这样写

where (a not in ('a','b') or a is null)
where (a <> 'a' or a is null)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值