最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解在Hive中NULL的理解

 更新時(shí)間:2025年11月21日 11:19:05   作者:龍大.  
在Hive中,NULL表示的是異常,這篇文章主要介紹了在Hive中NULL理解的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Hive具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言

在 Hive 中,NULL 是一個(gè)特殊的值,表示“未知”或“缺失”。任何與 NULL 的比較操作(如 =, >, <, >=, <=, <>)都會(huì)返回 NULL,而不是 TRUEFALSE。

1.NULL 的比較規(guī)則

在 Hive(以及大多數(shù) SQL 數(shù)據(jù)庫(kù))中,NULL 的比較遵循 三值邏輯(Three-Valued Logic)

  • TRUE
  • FALSE
  • UNKNOWN(即 NULL

任何與 NULL 的比較結(jié)果都是 UNKNOWN(即 NULL)。

2.具體示例

假設(shè)有一個(gè)表 test

value
5
NULL
3

2.1NULL > 1返回什么?

SELECT value, value > 1 AS result FROM test;

結(jié)果:

valueresult
5true
NULLNULL
3true
  • NULL > 1NULL(未知)
  • NULL < 1NULL
  • NULL = 1NULL
  • NULL <> 1NULL

2.2NULL = NULL返回什么?

SELECT NULL = NULL AS result;

結(jié)果: NULL(不是 true!)

  • 在 SQL 中,NULL 不等于任何值,包括它自己。
  • 要判斷兩個(gè)值是否都為 NULL,必須用 IS NULL。

2.3IS NULL和IS NOT NULL

SELECT value, value IS NULL AS is_null FROM test;

結(jié)果:

valueis_null
5false
NULLtrue
3false
  • IS NULL 是唯一能正確判斷 NULL 的操作。

3.WHERE 子句中的 NULL 行為

SELECT * FROM test WHERE value > 1;

結(jié)果:

value
5
3
  • NULL 被過(guò)濾掉了!因?yàn)?NULL > 1 返回 NULL,而 WHERE 只保留 TRUE 的行。

如果你想保留 NULL,必須顯式判斷:

SELECT * FROM test WHERE value > 1 OR value IS NULL;

4.NULL 的邏輯運(yùn)算

  • TRUE AND NULLNULL
  • FALSE AND NULLFALSE
  • TRUE OR NULLTRUE
  • FALSE OR NULLNULL
  • NOT NULLNULL

5.如何正確處理 NULL

5.1 使用IS NULL/IS NOT NULL

SELECT * FROM test WHERE value IS NULL;

5.2 使用COALESCE提供默認(rèn)值

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.總結(jié)

操作結(jié)果
NULL > 1NULL
NULL = NULLNULL
value IS NULLTRUE/FALSE
WHERE value > 1過(guò)濾掉 NULL
COALESCE(value, default)提供默認(rèn)值

核心原則

  • NULL 不等于任何值,包括它自己。
  • 任何與 NULL 的比較都返回 NULL。
  • 必須用 IS NULL 判斷空值。

如需處理復(fù)雜空值邏輯,建議結(jié)合 COALESCE、CASE WHEN 等函數(shù)。

到此這篇關(guān)于在Hive中NULL理解的文章就介紹到這了,更多相關(guān)Hive中NULL理解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

绥宁县| 惠安县| 察哈| 山东| 西昌市| 赤城县| 黄山市| 应城市| 绥江县| 墨玉县| 沧源| 巴里| 松滋市| 佛冈县| 东阿县| 巫山县| 三亚市| 博爱县| 邓州市| 苗栗县| 拉萨市| 慈利县| 张家川| 英山县| 信阳市| 安乡县| 德昌县| 武定县| 沛县| 鹤山市| 子洲县| 胶南市| 威信县| 镇安县| 犍为县| 博湖县| 股票| 邯郸县| 乌兰察布市| 穆棱市| 涟水县|