Isnull
isNull
检查一个值是否为 null
,这是一种特殊的占位符,由数据库在缺少或未知数据时使用。
语法
isNull(text column)
你可以在自定义过滤器中使用 isNull
,或者作为条件聚合函数 CountIf
和 SumIf
的条件。要使用 isNull
创建自定义列,你必须将 isNull
与另一个接受布尔值(例如 case
)的函数结合使用。
Metabase 如何处理 null 值
在 Metabase 表中,null
值显示为空白单元格。此外,对于字符串列,空字符串和只包含空格字符的字符串也将显示为空白。
下表显示了 isNull
的输出示例。
Metabase 显示 | 数据库值 | isNull(值) |
---|---|---|
null |
true |
|
"" (空字符串) |
false * |
|
" " (空格) |
false |
|
小猫 | "小猫" |
false |
*在 Oracle 和 Vertica 数据库中,空字符串被视为空值。
创建布尔自定义列
要使用 isNull
创建自定义列,您必须将 isNull
与另一个函数结合使用。例如,如果您想创建一个自定义列,当 Discount
列为 null 时包含 true
,否则包含 false
,您可以使用 case 表达式
case(isNull([Discount]), true, false)
用其他值替换 null 值
将 isNull
与 case
表达式结合使用,用更具描述性的内容替换缺失信息
例如,您可以创建一个新的自定义列,当原始 [Feedback]
列为 null 时包含 "未知反馈"
,当 [Feedback]
有值时包含实际的反馈值。实现该功能的自定义表达式是
case(isNull([Feedback]), "Unknown feedback.", [Feedback])
反馈 | case(isNull([Feedback]), "未知反馈。", [Feedback]) |
---|---|
null |
"未知反馈。" |
"" |
"" |
"我喜欢你的风格。" |
"我喜欢你的风格。" |
支持的数据类型
数据类型 | 与 isNull 配合使用 |
---|---|
字符串是 | ✅ |
数字 | ✅ |
时间戳 | ✅ |
布尔值 | ✅ |
JSON | ✅ |
限制
- 在 Metabase 中,您必须将
isNull
与另一个接受布尔参数(即true
或false
)的表达式结合使用。 isNull
一次只接受一个值。如果您需要处理多个列中的空白单元格,请参阅 coalesce 表达式。- 如果
isNull
对您的空白单元格似乎不起作用,您可能遇到了空字符串。请尝试使用isEmpty
表达式。
相关函数
本节介绍可与 Metabase isNull
表达式互换使用的函数和公式,并附有关于如何为您的用例选择最佳选项的说明。
以下所有示例均使用 替换 null 值 示例中的表
反馈 | case(isNull([Feedback]), "未知反馈。", [Feedback]) |
---|---|
null |
"未知反馈。" |
"" |
"" |
"我喜欢你的风格。" |
"我喜欢你的风格。" |
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 的文档。