Skip to content

多行函数

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

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

UNNEST

text
unnest(array)

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

例子

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

json
{
  "a": [
    1,
    2
  ],
  "b": 3
}

获取 unnest 结果的规则:

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

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

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

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

json
{
  "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}