繁体   English   中英

来自 Postgres 中嵌套 jsonb 数组的 Select 数据

[英]Select data from a nested jsonb array in Postgres

我想 select 嵌套这样的数组中的最后一个值:

{ tier: [
  { tier: [] },
  { tier: [] },
  { tier: [
      { tier: 1},
      { tier: 2},
      { tier: 3}, // < this item       
    ] 
  },
  ] 
}  

我尝试在其他示例中使用类似的内容,但语法让我难以理解。 我要么得到“列不存在”或“无法从对象中提取元素”

SELECT *, 
  t0->tier->(jsonb_array_length(t0->tier) - 1) t1,
  t1->tier->(jsonb_array_length(t1->tier) - 1) t2,
  t2->tier->(jsonb_array_length(t2->tier) - 1) t3,
FROM data t0

您可以通过负索引引用它:

SELECT t -> 'tier' -> -1 -> 'tier' -> -1
FROM data;

这里的 -1 引用了数组的最后一项,这意味着你不需要计算有多少元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM