Isempty

isempty 檢查字串欄中的值是否為空字串 ("") 或 null。在非字串欄上呼叫 isempty 會導致錯誤。

語法

isempty(text column)

您可以在自訂篩選條件中使用 isempty,或將其作為條件聚合 CountIfSumIf 的條件。若要使用 isempty 建立自訂欄,您必須將 isempty 與另一個接受布林值的函式結合,例如 case

Metabase 如何處理空字串和 null 值

在 Metabase 中,具有字串資料類型的欄位,會針對空字串、空白字元字串 null 值 (如果欄位在您的資料庫中可為 Null) 顯示空白儲存格。下表顯示 isempty 輸出的範例。

Metabase 顯示 資料庫值 isempty(值)
  null true
  "" (空字串) true
  " " (空白字元) false
kitten "kitten" false

建立布林值自訂欄

若要使用 isempty 建立自訂欄,您必須將 isempty 與另一個函式結合。例如,如果您想要建立一個自訂欄,當 Feedback 欄為空或 null 時包含 true,否則包含 false,您可以使用 case 表達式

case(isempty([Feedback]), true, false)

將空字串替換為另一個值

您可以將 isemptycase 表達式 結合,以將空字串替換為更具描述性的內容。

例如,您可以建立一個新的自訂欄,當原始 [Feedback] 欄為空或 null 時,該欄將包含 "No feedback.",當 [Feedback] 具有非空值時,則包含意見回饋值。執行此操作的自訂表達式為

case(isempty([Feedback]), "No feedback.", [Feedback])
Feedback case(isempty([Feedback]), "No feedback.", [Feedback])
"" "No feedback."
null "No feedback."
"I like your style." "I like your style."

接受的資料類型

資料類型 適用於 isempty
字串
數字
時間戳記
布林值
JSON

限制

  • 若要建立自訂欄,您必須將 isempty 與另一個接受布林值引數 (即 truefalse) 的表達式結合。
  • isempty 一次僅接受一個值。如果您需要處理來自多個欄位的空字串,則需要將多個 isempty 表達式與 case 表達式 搭配使用。

本節涵蓋可以與 Metabase isempty 表達式互換使用的函式和公式,並附註如何為您的使用案例選擇最佳選項。

以下所有範例均使用將空字串替換為另一個值範例中的表格

Feedback case(isempty([Feedback]), "No feedback.", [Feedback])
"" "No feedback."
null "No feedback."
"I like your style." "I like your style."

SQL

在大多數情況下 (除非您使用的是 NoSQL 資料庫),從查詢產生器建立的問題會轉換為針對您的資料庫或資料倉儲執行的 SQL 查詢。

CASE WHEN (Feedback = "" OR Feedback IS NULL) THEN "No feedback"
     ELSE Feedback END

相當於 Metabase isempty 表達式

case(isempty([Feedback]), "No feedback.", [Feedback])

試算表

如果我們的範例意見回饋欄在試算表中,其中「Feedback」在 A 欄,則公式為

=IF(A2 = "", "Unknown feedback.", A2)

相當於 Metabase isempty 表達式

case(isempty([Feedback]), "No feedback.", [Feedback])

Python

假設範例意見回饋欄在名為 df["Feedback"] 的資料框架欄中

df["Custom Column"] = np.where((df["Feedback"] == "") | (df["Feedback"].isnull()), "No feedback.", df["Feedback"])

相當於 Metabase isempty 表達式

case(isempty([Feedback]), "No feedback.", [Feedback])

延伸閱讀

閱讀其他Metabase 版本的文件。