簡體   English   中英

Postgres jsonb 字段到數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM