如何在redshift上取消嵌套json字符串数组[重复]
Posted
技术标签:
【中文标题】如何在redshift上取消嵌套json字符串数组[重复]【英文标题】:how to unnest a json string array on redshift [duplicate] 【发布时间】:2020-07-03 02:05:01 【问题描述】:我在 Redshift 表中有一个称为流派的字段。它以字符串的形式存储,而不是以 JSON 数组的形式存储,因为 redshift 没有提供这种功能。
["id": 27, "name": "Horror", "id": 878, "name": "Science Fiction"]
我想提取元素 - 'id' 和 'name' 并将其转储到另一个表格中,格式如下。我该怎么做?
【问题讨论】:
这可能会有所帮助:torsten.io/stdout/expanding-json-arrays-to-rows 这个问题已经在这里回答了***.com/questions/30195760/… 【参考方案1】:@botchniaque,@mangusta
感谢大家的帮助,我就是这样做的
WITH exploded_array AS (
SELECT
id AS movie_id,
json_extract_path_text( JSON_EXTRACT_ARRAY_ELEMENT_TEXT(genres, seq.i) , 'id' ) AS id ,
json_extract_path_text( JSON_EXTRACT_ARRAY_ELEMENT_TEXT(genres, seq.i) , 'name' ) AS name
FROM movies_staging, seq_0_to_100 AS seq
WHERE seq.i < JSON_ARRAY_LENGTH(genres)
)
SELECT *
FROM exploded_array;
【讨论】:
以上是关于如何在redshift上取消嵌套json字符串数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon Redshift 的列中取消嵌套/展开/展平逗号分隔值?