0
我正在寻找一种方法来使用键数组从JSONB对象中采集值。这是我的JSON:选择性地从JSONB列中采集基于数组的键和值
{
"Foo1": 1,
"Foo2": 2,
"Foo3": 3,
"Foo3": 4
}
我有一个名为“@Fields”的变量,它的类型是TEXT []。该数组包含我想从对象中摘取的键的名称。 {'Foo1','Foo2'}。结果应该是:
{
"Foo1": 1,
"Foo2": 2
}
我用JSONB_EXTRACT_PATH(“数据” :: jsonb,“@Fields”),然而它似乎函数需要传递的路径作为单个参数而我想给它的阵列不知何故。下面是它在我的查询中的外观:
SELECT
"UserID",
(
CASE
WHEN ARRAY_LENGTH("@Fields", 1) = 0 THEN "Data"
ELSE JSONB_EXTRACT_PATH("Data", "@Fields")
END
) AS "Data"
FROM
UserMeta
我怀疑我必须使用JSON_EACH或类似的东西?
真棒,谢谢! – ddibiase