如何从雪花中的json对象数组中选择数据

Posted

技术标签:

【中文标题】如何从雪花中的json对象数组中选择数据【英文标题】:How to select data from array of json object in snowflake 【发布时间】:2021-05-13 22:19:10 【问题描述】:

我拥有的数据:

ID Value
1 ["code": "SM", "place": "San Mateo, CA, USA","code": "IND", "place": "Indianapolis, IN, USA"]

我希望它变成什么:

ID Value
1 San Mateo, CA, USA; Indianapolis, IN, USA

这是我所能得到的(表格只是一个示例)

SELECT 
INDEX, 
PARSE_JSON(f.THIS),
ARRAY_TO_STRING(PARSE_JSON(f.THIS),';')
FROM TABLE(FLATTEN(input => parse_json('["code": "SM","place": "San Mateo, CA, USA","code": "IND","place": "Indianapolis, IN, USA"]'))) f LIMIT 1;

【问题讨论】:

【参考方案1】:

你已经接近了:

SELECT 
seq, 
listagg(f.value:place, '; ')
FROM TABLE(FLATTEN(input => parse_json('["code": "SM","place": "San Mateo, CA, USA","code": "IND","place": "Indianapolis, IN, USA"]'))) f 
group by seq

-- San Mateo, CA, USA; Indianapolis, IN, USA

【讨论】:

以上是关于如何从雪花中的json对象数组中选择数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有数据提取到拆分行中的雪花对象数组中?

雪花合并对象/json

在我们将其解析为 JSON 之前,Snowflake 如何转义对象数组字符串中的所有特殊字符?

从 JSON 数组中的字符串中提取字段

如何从 JSON 数组中的 JSON 对象中的单个值获取数据?

如何从 alamofire 中的 json 数组中获取对象?