我是空的

isempty 检查一个字符串列中的值是否为空字符串 ("") 或 null。在非字符串列上调用 isempty 将导致错误。

语法

isempty(text column)

您可以在 自定义过滤器 中使用 isempty,或者将其用作条件聚合 CountIfSumIf 的条件。要使用 isempty 创建自定义列,您必须将其与接受布尔值的其他函数组合,例如 case

Metabase 如何处理空字符串和 null 值

在 Metabase 中,具有字符串 数据类型 的列将显示空白单元格用于空字符串、空白字符的字符串或 null 值(如果该列在数据库中为可空)。下表显示了 isempty 的输出示例。

Metabase 显示 数据库值 isempty(value)
  null true
  ""(空字符串) true
  " "(空白) false
kitten "kitten" false

创建布尔自定义列

要使用 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 与接受布尔参数的其他表达式组合。
  • 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])

电子表格

如果我们的示例反馈列在电子表格中,其中“反馈”位于A列,则公式

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

等同于Metabase isempty表达式

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

Python

假设示例反馈列位于名为df["Feedback"]的dataframe列中

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

等同于Metabase isempty表达式

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

进一步阅读

阅读关于Metabase其他版本的文档。

想要改进这些文档? 提出更改。