从 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 json database amazon-athena rdbms
1个回答
0
投票
try the code below
WITH dataset AS (
   SELECT '{"name": "Bob Smith",
             "org": "engineering",
             "projects": [{"name":"project1", "completed":false},{"name":"project2", "completed":true}]}'
     AS myblob
)
SELECT CONCAT(
        json_extract_scalar(myblob, '$.projects[0].name'),
        ',',
        json_extract_scalar(myblob, '$.projects[1].name')
    ) AS project_names
FROM dataset;
© www.soinside.com 2019 - 2024. All rights reserved.