这是我遇到的问题: 我在 json 格式的 presto 表中有列"xyz"的数据元素,数组格式如下所述:
col1 | col2
a | {"fruits": ["apple", "banana", "orange"]}
b | {"fruits": ["apple", "banana", "orange", "grapes"]}
我需要以下格式的数据:
col1 | col2 | col3 | col4 | col5
a | apple|banana|orange | null
b | apple|banana|orange | grapes
或
任何关于如何在 json 中读取数组元素的示例都会非常有帮助
您可以将json_array_extract_scalar()
函数与每列的相应索引值一起使用,以将每列值提取为字符串
SELECT col1,
json_array_extract_scalar(col2,'$.fruits[0]') as col2,
json_array_extract_scalar(col2,'$.fruits[1]') as col3,
json_array_extract_scalar(col2,'$.fruits[2]') as col4,
json_array_extract_scalar(col2,'$.fruits[3]') as col5
FROM tab
还可以在上述查询中将json_array_extract_scalar
替换为json_array_extract
,以获取 JSON 格式的每一列。