Isnull

isnull 检查值是否为 nullnull 是一种特殊的占位符,数据库在缺少或未知某些内容时使用它。

语法

isnull(text column)

您可以在自定义筛选器中使用 isnull,或者将其用作条件聚合 CountIfSumIf 的条件。要使用 isnull 创建自定义列,您必须将 isnull 与另一个接受布尔值的函数(如 case)结合使用。

Metabase 如何处理 Null 值

在 Metabase 表格中,null 值显示为空白单元格。此外,对于字符串列,空字符串和仅包含空格字符的字符串也将显示为空白。

下表显示了 isnull 输出的示例。

Metabase 显示 数据库值 isnull(value)
  null true
  ""(空字符串) false*
  " "(空格) false
false "kitten" false

false

*在 Oracle 和 Vertica 数据库中,空字符串被视为空值。

创建布尔自定义列

case(isnull([Discount]), true, false)

要使用 isnull 创建自定义列,您必须将 isnull 与另一个函数结合使用。例如,如果您想创建一个自定义列,当 Discount 列为 null 时包含 true,否则包含 false,您可以使用 case 表达式

用另一个值替换空值

isnullcase 表达式 结合使用,以用更具描述性的内容替换缺失的信息

case(isnull([Feedback]), "Unknown feedback.", [Feedback])
例如,您可以创建一个新的自定义列,当原始 [Feedback] 列为 null 时,该列将包含 "Unknown feedback",而当 [Feedback] 具有值时,该列将包含实际的反馈值。执行此操作的自定义表达式是 反馈
null case(isnull([Feedback]), "未知反馈。", [Feedback])
"" ""
"未知反馈。" "未知反馈。"

"我喜欢你的风格。"

接受的数据类型 数据类型
适用于 isnull 字符串
字符串
数字 字符串
字符串
时间戳 字符串

  • 布尔值
  • JSON

限制

相关函数

例如,您可以创建一个新的自定义列,当原始 [Feedback] 列为 null 时,该列将包含 "Unknown feedback",而当 [Feedback] 具有值时,该列将包含实际的反馈值。执行此操作的自定义表达式是 反馈
null case(isnull([Feedback]), "未知反馈。", [Feedback])
"" ""
"未知反馈。" "未知反馈。"

在 Metabase 中,您必须将 isnull 与另一个接受布尔参数(即 truefalse)的表达式结合使用。

本节介绍可以与 Metabase isnull 表达式互换使用的函数和公式,并提供有关如何为您的用例选择最佳选项的说明。

CASE WHEN Feedback IS NULL THEN "Unknown feedback",
     ELSE Feedback END

SQL

case(isnull([Feedback]), "Unknown feedback.", [Feedback])

isnull 一次只接受一个值。如果您需要处理多个列中的空白单元格,请参阅 coalesce 表达式

电子表格

Python

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

SQL

case(isnull([Feedback]), "Unknown feedback.", [Feedback])

如果 isnull 似乎对您的空白单元格没有任何作用,则您可能具有空字符串。请尝试使用 isempty 表达式

以下所有示例均使用替换空值示例中的表格

在大多数情况下(除非您使用的是 NoSQL 数据库),从查询构建器创建的问题都会转换为针对您的数据库或数据仓库运行的 SQL 查询。

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

SQL

case(isnull([Feedback]), "Unknown feedback.", [Feedback])

相当于 Metabase isnull 表达式

Numpypandas 使用 NaNNA 而不是 null