首页 > 解决方案 > 表函数示例

问题描述

UNNEST表函数的一个例子吗?如果我理解正确,它似乎会生成一个命名列。就像是:

`vals`
[1,2,3]

unnest(vals) as v
`v`
1
2
3
with Table as (
  select [1,2,3] vals
 ) select v from Table, UNNEST(vals) as v
 

这是表函数的示例吗?如果不是,它是什么样的功能?BQ 中还有其他预定义的表函数吗?

标签: sqlgoogle-bigquery

解决方案


UNNEST 运算符接受一个 ARRAY 并返回一个表,其中 ARRAY 中的每个元素对应一行。您还可以在带有 IN 运算符的 FROM 子句之外使用 UNNEST。

因此,如果您愿意,可以将其称为表函数 :o)

您可以在此处阅读有关 UNNEST的更多信息

如果我理解正确,它似乎会生成一个命名列

不完全正确。请参阅下面的示例

with Table as (
  select [struct(1 as a,2 as b),struct(3, 4), struct(5, 6)] vals
) 
select v.* from Table, UNNEST(vals) as v

带输出

在此处输入图像描述


推荐阅读