簡體   English   中英

HiveQL 邏輯過濾器語句如何處理 NULL 值

[英]HiveQL how logic filter statement treats NULL values

我有一個示例數據集,如下所示:

Id  Name            ReferredBy
1   John Doe        NULL
2   Jane Smith      NULL
3   Anne Jenkins        2
4   Eric Branford       NULL
5   Pat Richards        1
6   Alice Barnes        2

如果我想 select 所有記錄都不是由 Jane Smith 引用的,我將使用以下命令:

SELECT Name FROM Customers WHERE ReferredBy <> 2;

在 SQL 服務器上,這將排除 NULL 值,因此我需要按以下方式編寫:

SELECT Name FROM Customers WHERE ReferredBy IS NULL OR ReferredBy <> 2

HiveQL 有同樣的問題嗎?

*很難在我擁有的原始數據集上對其進行測試,因為它非常大,幾乎沒有缺失。

謝謝!

NULL 的行為由NULL定義,所有數據庫都尊重它。 也就是說,該標准還指定NULL安全比較運算符IS NOT DISTINCT FROMIS DISTINCT FROM Hive 支持一個相等,但不支持那個。

對於您的邏輯,您可以將此 Hive 擴展用於<=>

where not (ReferredBy <=> 2)

The <=> is the NULL comparison, so it returns "true" for NULL <=> NULL and "false" for NULL <=> 2 , instead of NULL in both cases. 這大概是從 MySQL 借來的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM