【发布时间】:2017-02-10 06:54:02
【问题描述】:
假设我得到一个临时表,其中一个字段是一个数组,如何将它变成多行?
对于 PostgreSQL,这可以通过 UNNEST http://sqlfiddle.com/#!15/21673/19 完成
WITH x AS (SELECT ARRAY[1,3,2] AS arr)
SELECT UNNEST(arr) FROM x
在 BigQuery 中运行相同的查询说 语法错误:意外 [3:8] 处的关键字 UNNEST
似乎在 BigQuery 中 UNNEST 只能放在 FROM 子句之后,
然后我尝试了这些:
WITH x AS (SELECT ARRAY[1,3,2] AS arr)
SELECT * FROM UNNEST(x)
这句话说 UNNEST 不能应用在一张桌子上:x at [3:22];或者这个
WITH x AS (SELECT ARRAY[1,3,2] AS row)
SELECT * FROM UNNEST(x.arr)
说 UNNEST 不能应用于表:x.arr at [3:22]
顺便说一句,当前临时表 x 如下所示:
WITH x AS (SELECT ARRAY[1,2] AS row)
SELECT * FROM x
EOF
+--------------+
| row |
+--------------+
| [u'1', u'2'] |
+--------------+
虽然我希望将其变成值行:
+-----+
| row |
+-----+
| 1 |
| 2 |
+-----+
【问题讨论】:
-
Google 的任何人都可以回答为什么不支持 Postgres 样式标准
SELECT UNNEST(ARRAY[1,3,2])
标签: google-bigquery