处理null类型
空值类型 表示缺失或未知的值。
类型名称: null
空值语法
空类型存在于 列 的其他 基本类型 中。虽然 Flux 没有为 空 值提供字面语法,但是您可以使用 debug.null() 返回指定类型的空值。
import "internal/debug"
// Return a null string
debug.null(type: "string")
// Return a null integer
debug.null(type: "int")
// Return a null boolean
debug.null(type: "bool")
一个空字符串 ("") 不是 空 值。
检查列值是否为null
在对行进行迭代的函数中(例如 filter() 或 map()),使用 exists 逻辑运算符 来检查列值是否为 null。
过滤掉空值的行
data
|> filter(fn: (r) => exists r._value)
给定以下输入数据:
| 时间 | 值 |
|---|---|
| 2021-01-01T00:00:00Z | 1.2 |
| 2021-01-01T02:00:00Z | |
| 2021-01-01T03:00:00Z | 2.5 |
| 2021-01-01T04:00:00Z |
上面的例子返回:
| 时间 | 值 |
|---|---|
| 2021-01-01T00:00:00Z | 1.2 |
| 2021-01-01T03:00:00Z | 2.5 |
在临时表流中包含空值
- 使用
array.from()创建一个临时的表流。 - 使用
debug.null()来包含 null 列值。
import "array"
import "internal/debug"
array.from(
rows: [
{a: 1, b: 2, c: 3, d: "four"},
{a: debug.null(type: "int"), b: 5, c: 6, d: debug.null(type: "string")}
]
)
上面的例子返回:
| a | b | c | d |
|---|---|---|---|
| 1 | 2 | 3 | 四 |
| 5 | 6 |