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