跳至主要内容
Workday User Guide
上次更新时间 :2024-07-12
概念:表格和数据集中的空值

概念:表格和数据集中的空值

如果表格或数据集中的字段值为空,则该字段被视为空值。当您启用表格进行分析或发布数据集时,Workday 会在 Prism 数据源中将所有空值替换为默认值。Prism 数据源、探索面板和报告没有空值的概念。

表格如何处理空值

由于来源中的原始数据缺少特定字段的值,值可能为空。

数据集如何处理空值

值可能为空,原因如下:
  • 来自来源的原始数据的特定字段缺少值。
  • 对于指定的字段类型,无法解析来自外部数据源的原始数据。
  • Prism 计算字段表达式返回空结果或无效结果。
  • 数据集包含一个“联接”阶段和:
    • 您可以配置一个外联接(包括至少来自一个数据集管道的所有行)。
    • 一个管道与另一个管道之间没有匹配项。
    如果您熟悉 SQL,它类似于未联接的外键。

默认值(按字段类型)

Workday 会将 Prism 数据源中的 NULL 替换为以下值:
字段类型
Prism 数据源中的值
布尔值
不选中
币种
0(币种代码为空)
日期
(空白)
如果为分析启用了某个表格中的日期值,
0000-12-31T23:59:59.999Z
,则 Workday 显示不一致的结果。
数值、双精度、整数、长整型
0
实例
(空白)
多实例
(空白)
文本
(空白)

表达式中的空值

Prism Analytics 在 Prism 计算字段、筛选阶段以及在派生数据集中定义自定义示例数据时会使用表达式。数据集处理表达式中的空值的方式与 SQL 标准一致。这意味着:
  • 对涉及 NULL 的数值字段执行算术计算时,会返回 NULL。示例:
    5 + NULL
    返回 NULL。
  • 如果比较运算产生的布尔值字段中包含 NULL,则返回 NULL。示例:
    5 > NULL
    返回 NULL。
币种字段的字段值由 2 个构成组成(币种代码和币种值),因此,在算术计算中,币种字段对 NULL 的处理与数值字段略有不同。
  • 对涉及 NULL 的币种字段进行加法和减法计算时,将返回 NULL。示例:
    TO_CURRENCY("5.00 USD") + NULL
    返回 NULL。
  • 对使用不同币种代码的币种值进行加法和减法计算时,将返回空值。示例:
    TO_CURRENCY("5.00 USD") + TO_CURRENCY("5.00 EUR")
    返回 NULL。
您不能在比较操作中使用币种字段。但是,您可以使用以下语法测试是否存在 NULL 值:
value
IS NULL
value
IS NOT NULL
有关布尔值表达式的更多详细信息,请参见 参考信息:布尔值表达式

筛选阶段中的空值

如果您使用类似于以下内容的表达式对字段进行筛选:
[field] != MyValue
,Workday 会筛选掉值为 MyValue 或 NULL 的所有记录。此行为背后的逻辑如下:
  • 涉及 NULL 的比较运算符会返回 NULL。
  • Workday 将 NULL 布尔值的计算结果为“假”。

分组依据阶段中的空值

在创建“分组依据”阶段时,您要选择一个用于分组的数据集字段,以及另一个用于汇总的字段。Workday 如何处理 NULL 值取决于您如何使用该字段:
  • 对于分组字段,任何空值都会单独组成组。
  • 对于汇总字段,空值处理方式取决于汇总类型。
汇总类型
描述
平均值
返回组中所有有效数值的平均值。此函数对提供的表达式中的所有值求和,然后除以有效(非空)行数。
如果币种字段包含多个币种代码,则结果为空。
计数
返回组中所有行的数量(对所有值(空值和非空值)进行计数)。
如果币种字段包含多个币种代码,则结果为空。
最大值
返回所有非空值中最大的一个,如果所有值都为空,则返回空。
如果币种字段包含多个币种代码,则结果为空。
最小值
返回所有非空值中最小的一个,如果所有值都为空,则返回空。
如果币种字段包含多个币种代码,则结果为空。
总和
返回所有非空值的总和,如果所有值均为空,则返回空。
如果币种字段包含多个币种代码,则结果为空。