查询Postgres SQL JSON列

BH

我在postgres数据库中具有以下结构的json列(json_col):

{
   "event1":{
      "START_DATE":"6/18/2011",
      "END_DATE":"7/23/2011",
      "event_type":"active with prior experience"
   },
   "event2":{
      "START_DATE":"8/20/11",
      "END_DATE":"2/11/2012",
      "event_type":"active"
   }
}

[表结构示例] [1]

我如何在postgres中创建一条select语句,以使用其中“ event_type”(如“ active”)的where语句返回start_date和end_date?

尝试查询:

select person_id, json_col#>>'START_DATE' as event_start, json_col#>>'END_DATE' as event_end
from data
where json_col->>'event_type' like '%active%'; 

返回空列。

预期回应:

event_start  
6/18/2011
8/20/2011
詹妮丝

听起来您想取消嵌套json结构,忽略顶级键,而只获取顶级值。您可以使用jsonb_each进行此操作,查看名为“值”的结果列。您可以将函数调用作为横向联接放在FROM列表中(但是由于它是函数调用,因此无需指定LATERAL关键字,它是隐式的)

select value->>'START_DATE' from data, jsonb_each(json_col) 
    where value->>'event_type' like '%active%';

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章