gpt4 book ai didi

sql - Postgresql - 从对象数组中提取字段到文本数组

转载 作者:行者123 更新时间:2023-11-29 14:24:47 25 4
gpt4 key购买 nike

如何获取所有 id 字段 '{"se":[{"id":"123"}, {"id":"456"}]}' 并获取 ["123", "456"]

我尝试了下面的 SQL,但它不起作用,json 路径总是需要一个索引。

select '{"se":[{"id":"123"}, {"id":"456"}]}'::JSONB   #> '{se, id}'

只能获取第一个作为文本

select '{"se":[{"id":"123"}, {"id":"456"}]}'::JSONB   #> '{se, 0, id}'

最佳答案

这应该分几个单独的步骤完成:

  1. 首先取出'se'对象
  2. 然后展开数组项来分隔json对象
  3. 最终找到id键的值。
  4. 如果您需要将这些 ID 再次作为列表,则使用 jsonb_agg 函数包装结果。
SELECT
jsonb_agg(id) id_list
FROM
(SELECT jsonb_array_elements('{"se":[{"id":"123"}, {"id":"456"}]}'::jsonb #> '{se}') -> 'id' AS id) ids
;

关于sql - Postgresql - 从对象数组中提取字段到文本数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com