结构体函数
| 名称 | 说明 |
|---|---|
struct.entry | 点号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。 |
struct[entry] | 方括号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。 |
struct[idx] | 方括号语法,可作为从匿名 STRUCT(元组)按索引(从 1 开始)提取字段的 struct_extract 别名。 |
row(any, ...) | 创建一个包含参数值的匿名 STRUCT(元组)。 |
struct_concat(structs...) | 将多个 structs 合并为一个 STRUCT。 |
struct_contains(struct, entry) | 检查 STRUCT 是否包含指定字段。 |
struct_extract(struct, 'entry') | 从 STRUCT 中提取具名字段。 |
struct_extract(struct, idx) | 通过索引(从 1 开始)从匿名 STRUCT(元组)提取字段。 |
struct_extract_at(struct, idx) | 通过索引(从 1 开始)从 STRUCT(元组)提取字段。 |
struct_insert(struct, name := any, ...) | 向现有 STRUCT 添加字段。 |
struct_pack(name := any, ...) | 创建包含参数值的 STRUCT,字段名使用绑定变量名。 |
struct_position(struct, entry) | 返回字段在 STRUCT 中的索引(从 1 开始);若未找到则返回 NULL。 |
struct_update(struct, name := any, ...) | 为现有 STRUCT 添加或更新字段。 |
struct.entry
| 说明 | 点号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。 |
| 示例 | ({'i': 3, 's': 'string'}).i |
| 结果 | 3 |
struct[entry]
| 说明 | 方括号语法,可作为从具名 STRUCT 中提取字段的 struct_extract 别名。 |
| 示例 | ({'i': 3, 's': 'string'})['i'] |
| 结果 | 3 |
struct[idx]
| 说明 | 方括号语法,可作为从匿名 STRUCT(元组)按索引(从 1 开始)提取字段的 struct_extract 别名。 |
| 示例 | (row(42, 84))[1] |
| 结果 | 42 |
row(any, ...)
| 说明 | 创建一个包含参数值的匿名 STRUCT(元组)。 |
| 示例 | row(i, i % 4, i / 4) |
| 结果 | (10, 2, 2.5) |
struct_concat(structs...)
| 说明 | 将多个 structs 合并为一个 STRUCT。 |
| 示例 | struct_concat(struct_pack(i := 4), struct_pack(s := 'string')) |
| 结果 | {'i': 4, 's': string} |
struct_contains(struct, entry)
| 说明 | 检查 STRUCT 是否包含指定字段。 |
| 示例 | struct_contains(row(1, 2, 3), 2) |
| 结果 | true |
| 别名 | struct_has |
struct_extract(struct, 'entry')
| 说明 | 从 STRUCT 中提取具名字段。 |
| 示例 | struct_extract({'i': 3, 'v2': 3, 'v3': 0}, 'i') |
| 结果 | 3 |
struct_extract(struct, idx)
| 说明 | 通过索引(从 1 开始)从匿名 STRUCT(元组)提取字段。 |
| 示例 | struct_extract(row(42, 84), 1) |
| 结果 | 42 |
struct_extract_at(struct, idx)
| 说明 | 通过索引(从 1 开始)从 STRUCT(元组)提取字段。 |
| 示例 | struct_extract_at({'v1': 10, 'v2': 20, 'v3': 3}, 20) |
| 结果 | 20 |
struct_insert(struct, name := any, ...)
| 说明 | 向现有 STRUCT 添加字段。 |
| 示例 | struct_insert({'a': 1}, b := 2) |
| 结果 | {'a': 1, 'b': 2} |
struct_pack(name := any, ...)
| 说明 | 创建包含参数值的 STRUCT,字段名使用绑定变量名。 |
| 示例 | struct_pack(i := 4, s := 'string') |
| 结果 | {'i': 4, 's': string} |
struct_position(struct, entry)
| 说明 | 返回字段在 STRUCT 中的索引(从 1 开始);若未找到则返回 NULL。 |
| 示例 | struct_position(row(1, 2, 3), 2) |
| 结果 | 2 |
| 别名 | struct_indexof |
struct_update(struct, name := any, ...)
| 说明 | 为现有 STRUCT 添加或更新字段。 |
| 示例 | struct_update({'a': 1, 'b': 2}, b := 3, c := 4) |
| 结果 | {'a': 1, 'b': 3, 'c': 4} |