PostgreSQL 9.4 中的JSONB 到浮點型轉換
PostgreSQL 使用者嘗試使用以下查詢將jsonb 列轉換為浮點型:
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;
然而,他們遇到了錯誤:
ERROR: operator does not exist: jsonb + numeric
為了解決此問題,使用者嘗試使用::float 運算子進行明確轉換,從而導致錯誤:
ERROR: operator does not exist: jsonb + double precesion
要將jsonb 值轉換為浮點數,需要執行以下操作:遵循正確的運算子優先順序至關重要。 ->運算子傳回 JSON 值,而 ->> 則傳回 JSON 值。運算子傳回一個文字值。要成功轉換為浮動,您需要使用->>
正確的查詢語法是:
SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat FROM updates LIMIT 5;
透過使用->>運算符,jsonb 值首先轉換為文本,然後可以使用::float 運算子將其轉換為浮點數。
以上是如何在 PostgreSQL 中正確將 JSONB 轉換為浮點型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!