首頁 >資料庫 >mysql教程 >如何在 PostgreSQL 中正確將 JSONB 轉換為浮點型?

如何在 PostgreSQL 中正確將 JSONB 轉換為浮點型?

Susan Sarandon
Susan Sarandon原創
2025-01-02 18:37:43219瀏覽

How to Correctly Convert JSONB to Float in PostgreSQL?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn