it编程 > 软件设计 > 数据结构

一文详解在Hive中NULL的理解

38人参与 2025-11-21 数据结构

前言

在 hive 中,null 是一个特殊的值,表示“未知”或“缺失”。任何与 null 的比较操作(如 =, >, <, >=, <=, <>)都会返回 null,而不是 truefalse

1.null 的比较规则

在 hive(以及大多数 sql 数据库)中,null 的比较遵循 三值逻辑(three-valued logic)

任何与 null 的比较结果都是 unknown(即 null)

2.具体示例

假设有一个表 test

value
5
null
3

2.1null > 1返回什么?

select value, value > 1 as result from test;

结果:

valueresult
5true
nullnull
3true

2.2null = null返回什么?

select null = null as result;

结果: null(不是 true!)

2.3is null和is not null

select value, value is null as is_null from test;

结果:

valueis_null
5false
nulltrue
3false

3.where 子句中的 null 行为

select * from test where value > 1;

结果:

value
5
3

如果你想保留 null,必须显式判断:

select * from test where value > 1 or value is null;

4.null 的逻辑运算

5.如何正确处理 null

5.1 使用is null/is not null

select * from test where value is null;

5.2 使用coalesce提供默认值

select coalesce(value, 0) as safe_value from test;

5.3 使用nvl(hive 特有)

select nvl(value, 0) as safe_value from test;

5.4 使用case when

select 
    case 
        when value is null then 'missing'
        when value > 1 then 'large'
        else 'small'
    end as category
from test;

6.总结

操作结果
null > 1null
null = nullnull
value is nulltrue/false
where value > 1过滤掉 null
coalesce(value, default)提供默认值

核心原则

如需处理复杂空值逻辑,建议结合 coalescecase when 等函数。

到此这篇关于在hive中null理解的文章就介绍到这了,更多相关hive中null理解内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

LinkList的底层数据结构及优缺点详解

11-21

Pandas数据结构DataFrame使用方式

10-09

华为云,阿里云,腾讯云 安全组配置规则

08-06

ES核心干货学习(原理及数据结构)

08-06

Anaconda 安装及修改环境默认位置

08-06

【数据结构】详解堆排序当中的topk问题(leetcode例题)

08-06

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论