小编Tom*_*asJ的帖子

如何用UNNEST或任何其他函数展平数组?

假设我得到一个临时表,其中一个字段是一个数组,如何将其转换为多行?

使用PostgreSQL,可以使用UNNEST http://sqlfiddle.com/#!15/21673/19完成

WITH x AS (SELECT ARRAY[1,3,2] AS arr)

SELECT UNNEST(arr) FROM x
Run Code Online (Sandbox Code Playgroud)

在BigQuery中运行相同的查询说法语错误:[3:8]处的意外关键字UNNEST

似乎在BigQuery中,UNNEST只能在FROM子句之后放入,

然后我试过这些:

WITH x AS (SELECT ARRAY[1,3,2] AS arr)

SELECT * FROM UNNEST(x)
Run Code Online (Sandbox Code Playgroud)

这个说UNNEST不能用在桌子上:x在[3:22] ; 或这个

WITH x AS (SELECT ARRAY[1,3,2] AS row)

SELECT * FROM UNNEST(x.arr)
Run Code Online (Sandbox Code Playgroud)

UNNEST不适用于桌子:x.arr at [3:22]

BTW,当前的临时表x如下所示:

WITH x AS (SELECT ARRAY[1,2] AS row)

SELECT * FROM x
EOF

+--------------+
|     row      |
+--------------+
| [u'1', u'2'] |
+--------------+
Run Code Online (Sandbox Code Playgroud)

而我期待把它变成有价值的行:

+-----+
| row |
+-----+
|   1 …
Run Code Online (Sandbox Code Playgroud)

google-bigquery

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

google-bigquery ×1