將 PostgreSQL 的 jsonb 類型轉換為 Float
本文解決了將 PostgreSQL 的 jsonb 類型轉換為 float 的挑戰。當嘗試對 jsonb 資料執行算術運算時會出現困難,預設會回傳錯誤。
初始查詢和錯誤
呈現初始查詢:
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
此查詢會觸發錯誤,因為該運算符無法應用於jsonb 和數字類型。新增明確轉換,如下所示,會產生另一個錯誤:
SELECT (json_data->'position'->'lat')::float + 1.0 AS lat FROM updates LIMIT 5;
錯誤訊息現在表示該運算符不能在 jsonb 和雙精確度之間使用。
JSON 運算子
問題源自於以下事實: ->運算子傳回一個 JSON 對象,而 ->->輸出文字。為了將jsonb 值正確地轉換為浮動,->->
解決方案
這個問題的解決方案是替換->運算符->->:
SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5
此修改後的查詢現在可以正確地將jsonb數值轉換為浮點數並執行加法操作,不會發生錯誤。
以上是如何正確將PostgreSQL的jsonb轉換為Float進行算術運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!