我的postgres数据库中有一个表master_data_approval_table,字段approval_value(类型为Jsonb)包含以下结构:
x1c 0d1x的数据
我们只需要那些jsonb数组的每个对象严格匹配给定条件**“status”的记录:“核准”**
预期O/P:
的
我尝试了不同的查询,但没有找到确切的查询来获得预期的输出。请帮我拿这个。
先谢了。
我的postgres数据库中有一个表master_data_approval_table,字段approval_value(类型为Jsonb)包含以下结构:
x1c 0d1x的数据
我们只需要那些jsonb数组的每个对象严格匹配给定条件**“status”的记录:“核准”**
预期O/P:
的
我尝试了不同的查询,但没有找到确切的查询来获得预期的输出。请帮我拿这个。
先谢了。
3条答案
按热度按时间uplii1fm1#
首先展平JSONB字段,然后执行例程选择。
字符串
我假设master_data_approval_table.id是主键。如果不是,则在上述查询中将
select mdat.*
替换为select mdat.id
。DB Fiddle的数据。
k4ymrczo2#
字符串
jsonb_array_elements函数将把jsonb数组展开为单独的行,然后可以根据条件过滤这些行。
此查询将返回master_data_approval_table中的行,其中jsonb数组中的所有对象都具有“status”:“批准”
laximzn53#
你想要的是
第一个月
出于某种原因,如果你试图选择
json_field->>'json_object'
,你会得到一个错误,所以你需要(有点冗余)将你的json字段转换为json。