[英]Postgres jsonb field to array
我正在瀏覽 Postgres Jsonb 文檔,但無法為我遇到的一個小問題找到解決方案。
我有一張桌子:MY_TABLE
具有以下列:
用戶、名稱、數據和購買
需要注意的一件事是“數據”是一個 jsonb 並且有多個字段。 “數據”中的字段之一是“屬性”,但它目前是一個字符串。 我該如何將其更改為字符串列表?
我曾嘗試使用 json_build_array 但沒有任何運氣
例如,我希望我的 jsonb 看起來像:
{
"Id": 1,
"Attributes": ["Test"]
}
代替
{
"Id": 1,
"Attributes": "Test"
}
我只關心 Json 中的“屬性”字段,而不關心任何其他字段。
我還想確保對於一些具有空字符串“屬性”:“”的屬性,它們被映射到一個空列表而不是一個帶有空字符串的列表([] 不是 [""])
您可以使用jsonb_set()
和一些空字符串的條件邏輯:
jsonb_set(
mycol,
'{Attributes}',
case when js ->> 'Attributes' <> ''
then jsonb_build_array(js ->> 'Attributes')
else '[]'::jsonb
end
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.