首頁 >資料庫 >mysql教程 >如何將 PostgreSQL JSONB 轉換為浮點數以進行算術運算?

如何將 PostgreSQL JSONB 轉換為浮點數以進行算術運算?

Linda Hamilton
Linda Hamilton原創
2025-01-02 21:18:38272瀏覽

How to Cast PostgreSQL JSONB to Float for Arithmetic Operations?

將PostgreSQL 的JSONB 轉換為Float

嘗試對包含數值的PostgreSQL JSONB 類型列執行算術運算時,可能會遇到錯誤算術,因為鍵入不符合的內容。本文示範如何克服此問題並成功將 JSONB 值轉換為浮點數。

所提供查詢中錯誤的根本原因是嘗試將數值 (1.0) 加到 JSONB 值,這會導致出現「運算符不存在」錯誤。為了解決這個問題,您可以在執行操作之前使用強制轉換將 JSONB 值轉換為浮點型。

但是,僅將JSONB 值強制轉換為浮點型可能還不夠,因為PostgreSQL 提供了兩種存取JSON 值的選項:

  • json_data->'position':回傳一個JSON值,不能直接轉換為float.
  • json_data->>'position':傳回一個文字值,可以使用 ::float 將其轉換為浮點數。

在您的具體情況下,因為你知道緯度值都是JSON 數字,你可以使用以下查詢將它們轉換為浮點數:

SELECT (json_data->>'position'->>'lat')::float + 1.0 AS lat
FROM updates
LIMIT 5;

這個修改後的查詢應該會成功將JSONB lat 值轉換為浮點數,使您能夠執行所需的操作。

以上是如何將 PostgreSQL JSONB 轉換為浮點數以進行算術運算?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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