簡體   English   中英

如何使用對值本身的引用來更新 jsonb object 中鍵的值?

[英]How can I update a value for a key in a jsonb object using a reference to the value itself?

我正在嘗試使用對自身的引用來更新 JSONB 數據類型中的鍵值。 基本上我必須用它的正值替換任何負值。

我已經嘗試過了,但我似乎無法讓它工作:

UPDATE transactions 
   SET raw_transaction = JSONB_SET( raw_transaction, '{transaction-amount}', 
                            ABS ( ( raw_transaction ->> 'transaction-amount' )::DECIMAL ), 
                            FALSE ) 
 WHERE ( raw_transaction ->> 'transaction-amount' )::DECIMAL < 0 

樣本數據

{
  "id":"wkjhen87398", 
  "transaction-amount":-1.23
}

任何幫助將非常感激。

通過一些額外的演員來解決它:

UPDATE transactions 
   SET raw_transaction = JSONB_SET( raw_transaction, '{transaction-amount}', 
                            ((ABS ( ( raw_transaction ->> 'transaction-amount' )::DECIMAL))::TEXT)::JSONB, 
                              FALSE ) 
 WHERE ( raw_transaction ->> 'transaction-amount' )::DECIMAL < 0 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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