Isnull
isnull
檢查值是否為 null
,這是一種特殊的預留位置,資料庫在遺失或未知某些項目時會使用它。
語法
isnull(text column)
您可以在自訂篩選條件中使用 isnull
,或將其作為條件式彙總 CountIf
和 SumIf
的條件。若要使用 isnull
建立自訂欄,您必須將 isnull
與另一個接受布林值的函式結合,例如 case
。
Metabase 如何處理 Null
在 Metabase 表格中,null
會顯示為空白儲存格。此外,針對字串欄,空白字串和僅包含空格字元的字串也會顯示為空白。
下表顯示 isnull
輸出的範例。
Metabase 顯示 | 資料庫值 | isnull(值) |
---|---|---|
null |
true |
|
"" (空白字串) |
false * |
|
" " (空格) |
false |
|
false | "kitten" |
false |
*在 Oracle 和 Vertica 資料庫中,空白字串會被視為 null。
建立布林自訂欄
若要使用 isnull
建立自訂欄,您必須將 isnull
與另一個函式結合。例如,如果您想要建立一個自訂欄,在 Discount
欄為 null 時包含 true
,否則包含 false
,則可以使用 case 運算式
case(isnull([Discount]), true, false)
將 Null 值取代為另一個值
將 isnull
與 case 運算式
結合,以更具描述性的內容取代遺失的資訊
例如,您可以建立一個新的自訂欄,當原始 [Feedback]
欄為 null 時,該欄將包含 "Unknown feedback"
,而當 [Feedback]
具有值時,則包含實際的回饋值。執行此操作的自訂運算式為
case(isnull([Feedback]), "Unknown feedback.", [Feedback])
回饋 | case(isnull([Feedback]), "Unknown feedback.", [Feedback]) |
---|---|
null |
"Unknown feedback." |
"" |
"" |
"I like your style." |
"I like your style." |
接受的資料類型
資料類型 | 適用於 isnull |
---|---|
字串 | ✅ |
數字 | ✅ |
時間戳記 | ✅ |
布林值 | ✅ |
JSON | ✅ |
限制
- 在 Metabase 中,您必須將
isnull
與另一個接受布林引數的運算式 (即true
或false
) 結合。 isnull
一次僅接受一個值。如果您需要處理多個欄中的空白儲存格,請參閱 coalesce 運算式。- 如果
isnull
看起來對您的空白儲存格沒有任何作用,您可能會有空白字串。請嘗試改用isempty 運算式
。
相關函式
本節涵蓋可以與 Metabase isnull
運算式互換使用的函式和公式,並附註關於如何為您的使用案例選擇最佳選項。
以下所有範例都使用來自將 Null 值取代為另一個值範例的表格
回饋 | case(isnull([Feedback]), "Unknown feedback.", [Feedback]) |
---|---|
null |
"Unknown feedback." |
"" |
"" |
"I like your style." |
"I like your style." |
SQL
在大多數情況下 (除非您使用的是 NoSQL 資料庫),從查詢產生器建立的問題會轉換為針對您的資料庫或資料倉儲執行的 SQL 查詢。
CASE WHEN Feedback IS NULL THEN "Unknown feedback",
ELSE Feedback END
相當於 Metabase isnull
運算式
case(isnull([Feedback]), "Unknown feedback.", [Feedback])
試算表
試算表 #N/A
與資料庫 null
(「未知」或「遺失」資訊的預留位置) 相當。
假設我們的範例回饋欄位於試算表中,「回饋」位於 A 欄,則公式為
=IF(ISNA(A2), "Unknown feedback.", A2)
相當於 Metabase isnull
運算式
case(isnull([Feedback]), "Unknown feedback.", [Feedback])
Python
Numpy 和 pandas 使用 NaN
或 NA
而非 null
。
假設我們的範例回饋欄位於名為 df["Feedback"]
的資料框架欄中
df["Custom Column"] = np.where(df["Feedback"].isnull(), "Unknown feedback.", df["Feedback"])
相當於 Metabase isnull
運算式
case(isnull([Feedback]), "Unknown feedback.", [Feedback])
延伸閱讀
閱讀其他Metabase 版本的文件。