NULL - 脚本和图表函数
Null 函数返回 null 值。
语法:
Null( )
返回数据类型: NULL
示例 | 结果 |
---|---|
If(Product = 'A', Null(),Sum(Sales)) | 此表达式返回 Product A 的 NULL,否则返回产品的销售额总和。 |
示例 - Null 基本原理
概览
使用一个简单的数据集来演示 Null 函数的不同用途。
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载到名为 Example 的数据表中的数据集。
数据表中有以下字段:
ID
Value
加载脚本
Example:
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3,378];
结果
加载数据并打开工作表。创建新表并将这些字段添加为维度:
ID
Value
创建以下计算维度:
=If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ),如果 Value 字段值为以下情况之一:没有值、短横 (-) 字符或值 NULL ,则返回 NULL ,否则返回值。
=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F'),根据 Value 字段是否包含空值,返回值 T (true) 或 F (false)。
ID | Value | If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) | If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F') |
---|---|---|---|
0 | - | T | |
1 | NULL | - | T |
2 | - | - | T |
3 | 378 | 378 | F |
Value 列显示数据集中输入的数据。第一个度量(第 3 列)使用 Null 函数对满足 IF 语句条件的那些值返回 NULL:len(trim(Value))= 0 or Value='NULL' or Value='-'。例如,前 3 行符合要求,并返回 NULL 。最后一行返回输入的值,378。
第二个度量(第 4 列)取第 3 列中的值,并返回 T if NULL 或 F if notNULL。结果显示,前 3 行为空值。
在此例中,已加载包含四行的内联表,其中前面三行不包含任何内容,或者包含短横 - 或者 Value 列中的文本 NULL。我们将这些值转移为真正的 NULL 值呈现形式。
中间前置 LOAD 使用 Null 函数执行转换。
第一个前置 LOAD 用于添加一个字段来检查该值是否为 NULL,在此例中仅供说明。
NullsDetectedAndConverted:
LOAD *,
If(IsNull(ValueNullConv), 'T', 'F') as IsItNull;
LOAD *,
If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) as ValueNullConv;
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3, 386];
下面是结果表。在 ValueNullConv 列中,NULL 值用 - 表示。
ID | Value | ValueNullConv | IsItNull |
---|---|---|---|
0 | - | T | |
1 | NULL | - | T |
2 | - | - | T |
3 | 386 | 386 | F |
示例 - 使用 Null 排除值
概览
分析销售数据以确定总销售额和与 Product A 不相关的销售额。
打开数据加载编辑器,并将下面的加载脚本添加到新选项卡。
加载脚本包含:
加载到名为 Example 的数据表中的数据集。
数据表中有以下字段:
Product
Sales
加载脚本
Example:
LOAD * Inline [
Product, Sales
A, 100
B, 150
C, 200
D, 250
];
结果
加载数据并打开工作表。创建新表并将该字段添加为维度:
Product
创建以下度量:
=Sum(Sales),计算总销售额。
=If(Product = 'A', Null(),Sum(Sales)),计算 Product 并非为 A 的总销售额。
Product | Sum(Sales) | If(Product = 'A', Null(),Sum(Sales)) |
---|---|---|
A | 100 | - |
B | 150 | 150 |
C | 200 | 200 |
D | 250 | 250 |
此示例显示了一种计算总销售额的简单方法,然后使用 Null 函数将值设置为 NULL,排除特定产品的销售额。例如,在第二个度量中,Product A 的所有值返回 NULL 并被排除在外。