Isnull
isnull
检查值是否为 null
,null
是一种特殊的占位符,数据库在缺少或未知某些内容时使用它。
语法
isnull(text column)
您可以在自定义筛选器中使用 isnull
,或者将其用作条件聚合 CountIf
和 SumIf
的条件。要使用 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 表达式
用另一个值替换空值
将 isnull
与 case
表达式 结合使用,以用更具描述性的内容替换缺失的信息
case(isnull([Feedback]), "Unknown feedback.", [Feedback])
例如,您可以创建一个新的自定义列,当原始 [Feedback] 列为 null 时,该列将包含 "Unknown feedback" ,而当 [Feedback] 具有值时,该列将包含实际的反馈值。执行此操作的自定义表达式是 |
反馈 |
---|---|
null |
case(isnull([Feedback]), "未知反馈。", [Feedback]) |
"" |
"" |
"未知反馈。" |
"未知反馈。" |
"我喜欢你的风格。"
接受的数据类型 | 数据类型 |
---|---|
适用于 isnull |
字符串 |
✅ | 字符串 |
数字 | 字符串 |
✅ | 字符串 |
时间戳 | 字符串 |
✅
- 布尔值
- ✅
- JSON
✅
限制
- 在 Metabase 中,您必须将
isnull
与另一个接受布尔参数(即true
或false
)的表达式结合使用。 isnull
一次只接受一个值。如果您需要处理多个列中的空白单元格,请参阅 coalesce 表达式。- 如果
isnull
似乎对您的空白单元格没有任何作用,则您可能具有空字符串。请尝试使用isempty
表达式。
相关函数
例如,您可以创建一个新的自定义列,当原始 [Feedback] 列为 null 时,该列将包含 "Unknown feedback" ,而当 [Feedback] 具有值时,该列将包含实际的反馈值。执行此操作的自定义表达式是 |
反馈 |
---|---|
null |
case(isnull([Feedback]), "未知反馈。", [Feedback]) |
"" |
"" |
"未知反馈。" |
"未知反馈。" |
在 Metabase 中,您必须将 isnull
与另一个接受布尔参数(即 true
或 false
)的表达式结合使用。
本节介绍可以与 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
表达式
- 电子表格
#N/A
值相当于数据库null
值(“未知”或“缺失”信息的占位符)。 - 假设我们的示例反馈列位于电子表格中,其中“Feedback”在 A 列中,则公式为