multi_row_functions.md 1.2 KB

多行函数

多列函数执行运算之后会返回多个行。

多行函数仅可在 SELECT 子句中使用, 并且在 SELECT 子句中只允许使用一个多行函数。

UNNEST

unnest(array)

参数必须是一个 array 对象。该函数将参数 array 展开成多行作为结果返回。如果 array 对象中每一个子项为 map[string]interface{} 对象,则该子项会作为列在返回的行中。

例子

创建流 demo,并给与如下输入。

```json lines { "a": [

1,
2

], "b": 3 }


获取 unnest 结果的规则:

```text
SQL: SELECT unnest(a) FROM demo
___________________________________________________
{"unnest":1}
{"unnest":2}

获取 unnest 结果与其他列的规则:

SQL: SELECT unnest(a), b FROM demo
___________________________________________________
{"unnest":1, "b":3}
{"unnest":2, "b":3}

创建流 demo,并给与如下输入。

```json lines { "x": [

{
  "a": 1,
  "b": 2
},
{
  "a": 3,
  "b": 4
}

], "c": 5 }


获取 unnest 结果与其他列的规则:

```text
SQL: SELECT unnest(x), c FROM demo
___________________________________________________
{"a":1, "b":2, "c": 5}
{"a":3, "b":4, "c": 5}