首页 > 解决方案 > 有没有办法可以检索存储在 redshift 列中的 JSON 对象的元素作为单独的行?

问题描述

我目前有一个表,其中一列包含每个条目的 JSON 对象,类似于:

编号 | 地位


1 | {姓名:鲍勃,年龄:11}

2 | {姓名:蒂姆,年龄:23​​}

我想将状态中的值作为它们自己的行返回,例如:

编号 | 状态 | 价值


1 | 姓名 | 鲍勃

1 | 年龄 | 11

2 | 姓名 | 蒂姆

2 | 年龄 | 23

我试图通过使用此处的方法在单独的行上返回 Redshift JSON 数组的元素来解决这个问题,但是由于该列包含一个 json 对象而不是一个 json 数组,因此 JSON_EXTRACT_ARRAY_ELEMENT_TEXT 和 JSON_ARRAY_LENGTH 将不起作用。我在想的是通过在开头添加一个 [ 并在末尾添加一个 ] 并将 , 替换为 },{ 来将 json 对象变成一个数组,但是,如果可能的话,我想避免更改表中的数据. 有没有更好的方法来实现我的目标?

标签: jsonamazon-redshift

解决方案


推荐阅读