我将以下json对象存储在jsonb列中
{
"msrp": 6000,
"data": [
{
"supplier": "a",
"price": 5775
},
{
"supplier": "b",
"price": 6129
},
{
"supplier": "c",
"price": 5224
},
{
"supplier": "d",
"price": 5775
}
]
}
我正在尝试做一些事情,但完全停留在:(
(可选,但确实很不错)如果我执行select *,在返回结果之前,请在每个数组中插入一个“ price_diff”,这样我就可以看到msrp和供应商价格之间的差异。 >
{
"supplier": "d",
"price": 5775,
"price_diff": 225
}
答案 0 :(得分:0)
where data @> '{"supplier": "e"}'
您是否有一个名为data的列?您不能仅仅将JSONB密钥名称视为列名称。
遏制始于根源。
colname @> '{"data":[{"supplier": "e"}]}'
您可以通过以下方式动态地重新定义“ root”:
colname->'data' @> '[{"supplier": "e"}]'