Hive中not in函数的小坑 :含null时的判断

2023-11-09

Hive中的not in函数有一个隐藏的陷阱,当not in() 中的数值包含NULL,匹不上的数据会返回NULL而不是True。

所以当在where中使用not in子查询进行筛选,一定要记得去除NULL值。

样例代码:

--not in的原始结果
select num,num not in (null,'2'), num not in (null,'2') and true from
(select explode(split('1,2,3,4',',')) as num)t;


--not in 中包含NULL的筛选结果
select num,num not in (null,'2'), num not in (null,'2') and true from
(select explode(split('1,2,3,4',',')) as num)t
where num not in (null,'2') and true;


--not in 中不包含NULL的筛选结果
select num,num not in ('2'),num not in ('2') and true from
(select explode(split('1,2,3,4',',')) as num)t
where num not in ('2') and true;

————————————————
版权声明:本文为CSDN博主「thelostxxx」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/thelostxxx/article/details/64920020

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive中not in函数的小坑 :含null时的判断 的相关文章

随机推荐

  • 如何更新R

    更新R版本 1 直接安装install packages installr 然后 library installr 再updateR 2 把原来的R删掉 再到官网下载 The R Project for Statistical Comput
  • Java中变量详解(类的五成员之一:变量)

    目录 友情提醒 概述 Java中的成员包含五部分 第一部分 变量 1 Java中的变量分类 2 成员变量和局部变量的位置区别 3 Java中成员变量作用域 Java权限修饰符 4 Java中成员变量和成员属性的区别 5 成员变量初始化方式
  • Numbers on Whiteboard (codeforces1430)(数学分析)

    Numbers 1 2 3 each integer from 1 to once are written on a board In one operation you can erase any two numbers and from
  • LeetCode 刷题记录14. 最长公共前缀

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 说明 示例 1 输入 strs flower flow flight 输出 fl 示例 2 输入 strs dog racecar car 输出 解释
  • 修改网页logo图片

    在html的head代码区加入以下代码 保存刷新页面即可
  • Lua基础之字符串(string)

    1 计算字符串长度 2 返回字符串s的n个拷贝 3 返回字符串全部字母大写 4 返回字符串全部字母小写 5 返回一个类似printf的格式化字符串 6 根据下标截取字符串 7 在字符串中查找 8 在字符串中替换 9 返回字符的整数形式 10
  • 二叉树系列(1)已知二叉树的中序遍历和前序遍历,如何求后序遍历

    一道HULU的笔试题 How I wish yesterday once more 假设有棵树 长下面这个样子 它的前序遍历 中序遍历 后续遍历都很容易知道 PreOrder GDAFEMHZ InOrder ADEFGHMZ PostOr
  • nlp-如何实现编写BERT模型

    致谢 本文主要由浙江大学李泺秋撰写 前言 建议通过pycharm vscode等工具对bert源码进行单步调试 调试到对应的模块再对比看讲解 涉及到的jupyter可以在代码库 篇章3 编写一个Transformer模型 BERT 下载 本
  • Spring MVC 使用JSR303校验表单

    导入JSR303相关JAR包 Spring MVC 使用JSR303校验表单 创建registerForm jsp
  • 英伟达合作伙伴选择RTX 2080Ti作为深度学习-人工智能解决方案

    Scientific在9月6日发布新闻称 英伟达 Nvidia 全球服务器供应商之一AMAX将最新的GeForce RTX 2080 Ti图形卡集成到深度学习 人工智能以及HPC高性能计算服务器的解决方案阵容中 新的GeForce RTX
  • matplotlib.pyplot.hist绘制直方图函数

    matplotlib pyplot hist x bins 10 range None normed False weights None cumulative False bottom None histtype u bar align
  • 小程序点击复制功能制作

    在wxml文件中添加一个按钮或需要点击的元素 并绑定点击事件监听器2
  • RabbitMQ报错Error: unable to connect to node rabbit@xxx: nodedown的解决方式

    RabbitMQ报错Error unable to connect to node rabbit xxx nodedown的解决方式 环境 Win10x64 erlang otp 19 1x64 RabbitMQ3 6 6 刚开始研究Rab
  • 【前端领域】3D旋转超美相册(HTML+CSS)

    世界上总有一半人不理解另一半人的快乐 爱玛 目录 一 前言 二 本期作品介绍 3D旋转相册 三 效果展示 四 详细介绍 五 编码实现 index html style css img 六 获取源码 公众号获取源码 获取源码 私信 关注 点赞
  • KVM内核代码结构

    KVM内核代码结构 因为KVM的源代码已经包含在了Linux的内核树中 因此我们只需直接从www kernel org下载代码即可 内核源码包打开较大 解开后目录结构大概是这个样子 涉及KVM的主要有两个目录 virt和arch x86 k
  • [游戏开发]Unity业务代码自动生成工具

    前言 项目里有非常多的重复代码 例如UI业务逻辑 一般来说都会生成Manager Module View层代码 这是基本的MVC架构 Manger层 负责数据维护 对照Proto把CS和SC通信代码都写上 Module层 如果有变化则从Ma
  • 《Java基础篇》JavaBean的生命周期·作用域·通俗易懂

    1 基本概念 bean 就是由IOC 容器初始化 装配及管理的对象 Spring中的bean默认都是单例的 那么单例Bean在多线程程序下如何保证线程安全呢 Spring的单例是基于BeanFactory也就是Spring容器的 单例Bea
  • 西门子PLC入门-PLC介绍

    PLC全名 可编程逻辑控制器 Programmable Logic Controller 一种具有微处理器的用于自动化控制的数字运算控制器 可以将控制指令随时载入内存进行储存与执行 PLC由CPU 指令及数据内存 输入 输出接口 电源 数字
  • Java并发编程面试题

    基础知识 并发编程的优缺点 为什么要使用并发编程 并发编程的优点 充分利用多核CPU的计算能力 通过并发编程的形式可以将多核CPU的计算能力发挥到极致 性能得到提升 方便进行业务拆分 提升系统并发能力和性能 在特殊的业务场景下 先天的就适合
  • Hive中not in函数的小坑 :含null时的判断

    Hive中的not in函数有一个隐藏的陷阱 当not in 中的数值包含NULL 匹不上的数据会返回NULL而不是True 所以当在where中使用not in子查询进行筛选 一定要记得去除NULL值 样例代码 not in的原始结果 s