gpt4 book ai didi

sql - jsonb_array_elements 获取元素位置

转载 作者:行者123 更新时间:2023-11-29 12:02:35 37 4
gpt4 key购买 nike

我有一个包含多行的 JSONB 列的表。每行包含一个 JSON 数组。

现在我需要将其放入行中,但我还需要元素的位置。

例如

select *
from (
select jsonb_array_elements("values"::jsonb) from "myData"
) as x;

给我所有行的所有数组中的所有元素。

如何获取数组索引?

data                        
----------------------------
{ text: "Hello" } | 0 <-- first array element from first row
{ text: "World" } | 1 <-- second array element from first row
{ text: "Hallo" } | 0 <-- first array element from second row
{ text: "Welt!" } | 1 <-- second array element from second row

最佳答案

使用横向连接和 with ordinality :

select *
from (
select t.*
from "myData", jsonb_array_elements("values") with ordinality as t(data, idx)
) as x;

如果 "values" 已经是 jsonb 列,则无需将其转换为 jsbon

关于sql - jsonb_array_elements 获取元素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48944215/

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