概念:表格和数据集中的空值
如果表格或数据集中的字段值为空,则该字段被视为空值。当您启用表格进行分析或发布数据集时,Workday 会在 Prism 数据源中将所有空值替换为默认值。Prism 数据源、探索面板和报告没有空值的概念。
表格如何处理空值
由于来源中的原始数据缺少特定字段的值,值可能为空。
数据集如何处理空值
值可能为空,原因如下:
- 来自来源的原始数据的特定字段缺少值。
- 对于指定的字段类型,无法解析来自外部数据源的原始数据。
- Prism 计算字段表达式返回空结果或无效结果。
- 数据集包含一个“联接”阶段和:
- 您可以配置一个外联接(包括至少来自一个数据集管道的所有行)。
- 一个管道与另一个管道之间没有匹配项。
默认值(按字段类型)
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 值:
valueIS NULLvalueIS NOT NULL
有关布尔值表达式的更多详细信息,请参见 参考信息:布尔值表达式。
筛选阶段中的空值
如果您使用类似于以下内容的表达式对字段进行筛选:
[field] != MyValue
,Workday 会筛选掉值为 MyValue 或 NULL 的所有记录。此行为背后的逻辑如下:
- 涉及 NULL 的比较运算符会返回 NULL。
- Workday 将 NULL 布尔值的计算结果为“假”。
分组依据阶段中的空值
在创建“分组依据”阶段时,您要选择一个用于分组的数据集字段,以及另一个用于汇总的字段。Workday 如何处理 NULL 值取决于您如何使用该字段:
- 对于分组字段,任何空值都会单独组成组。
- 对于汇总字段,空值处理方式取决于汇总类型。
汇总类型 | 描述 |
|---|---|
平均值 | 返回组中所有有效数值的平均值。此函数对提供的表达式中的所有值求和,然后除以有效(非空)行数。
如果币种字段包含多个币种代码,则结果为空。 |
计数 | 返回组中所有行的数量(对所有值(空值和非空值)进行计数)。
如果币种字段包含多个币种代码,则结果为空。 |
最大值 | 返回所有非空值中最大的一个,如果所有值都为空,则返回空。
如果币种字段包含多个币种代码,则结果为空。 |
最小值 | 返回所有非空值中最小的一个,如果所有值都为空,则返回空。
如果币种字段包含多个币种代码,则结果为空。 |
总和 | 返回所有非空值的总和,如果所有值均为空,则返回空。
如果币种字段包含多个币种代码,则结果为空。 |