如何在redshift上取消json字符串数组的嵌套

elcex8rz  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(398)

这个问题在这里已经有答案了

在单独的行上返回redshift json数组的元素(2个答案)
10个月前关门了。
我在红移表中有一个叫做流派的字段。它存储为一个字符串,而不是json数组的形式,因为红移没有给我们这个功能。

[{"id": 27, "name": "Horror"}, {"id": 878, "name": "Science Fiction"}]

我想提取元素-“id”和“name”,并以下面给定的格式将其转储到另一个表中。我该怎么做?

92dk7w1h

92dk7w1h1#

@博奇尼亚克,@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;

相关问题