Mak*_*oni 8 sql amazon-redshift unnest
我有一个带有列的表,其中包含如下列表:
id
[1,2,3,10]
[1]
[2,3,4,9]
Run Code Online (Sandbox Code Playgroud)
我想要的结果是一个包含未列出值的表,如下所示:
id2
1
2
3
10
1
2
3
4
9
Run Code Online (Sandbox Code Playgroud)
我尝试了在网上找到的不同解决方案、aws 文档、SO 解决方案、博客文章,但没有任何运气,因为我在列中有一个列表,而不是 json 对象。任何帮助表示赞赏!
Sve*_*end 10
更新(2022):Redshift 现在支持数组并允许轻松“取消嵌套”它们。
语法很简单,就是有一个FROM the_table AS the_table_alias, the_table_alias.the_array AS the_element_alias
这是问题中提到的数据的示例:
WITH
-- some table with test data
input_data as (
SELECT array(1,2,3,10) as id
union all
SELECT array(1) as id
union all
SELECT array(2,3,4,9) as id
)
SELECT
id2
FROM
input_data AS ids,
ids.id AS id2
Run Code Online (Sandbox Code Playgroud)
产生预期的结果:
id2
---
1
2
3
4
9
1
2
3
10
Run Code Online (Sandbox Code Playgroud)
请参阅此处了解更多详细信息和具有更深嵌套级别的示例:https://docs.aws.amazon.com/redshift/latest/dg/query-super.html