如何从 JSON 数组中选择多个值

问题描述 投票:0回答:1

我有如下所示的示例数据,我想显示所有项目名称,而不仅仅是通过传递索引来显示一个项目名称,因为数组的大小在每一列中都是未知的。

通过尝试下面的 sql 仅获取“project1”。需要同时连接项目 1 和项目 2。

WITH dataset AS (
   SELECT '{"name": "Bob Smith",
             "org": "engineering",
             "projects": [{"name":"project1", "completed":false},{"name":"project2", "completed":true}]}'
     AS myblob
)
SELECT json_extract_scalar(myblob, '$.projects[0].name') AS project_name
FROM dataset`

期望项目 1 和项目 2 串联在一起。

`project_name
project1,project2`
sql arrays amazon-athena presto trino
1个回答
0
投票

有多种选择。例如,您可以使用

json_query
,它比
json_extract
有更好的 JSON 路径支持:

SELECT json_query(myblob, 'lax $.projects[*].name' WITH  ARRAY WRAPPER) projects
FROM dataset;

输出:

        projects
-------------------------
 ["project1","project2"]
© www.soinside.com 2019 - 2024. All rights reserved.