首页 >数据库 >mysql教程 >如何在 PostgreSQL 中正确将 JSONB 转换为浮点型?

如何在 PostgreSQL 中正确将 JSONB 转换为浮点型?

Susan Sarandon
Susan Sarandon原创
2025-01-02 18:37:43220浏览

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