如何将PostgreSQL 9.4的jsonb类型转换为float

前端之家收集整理的这篇文章主要介绍了如何将PostgreSQL 9.4的jsonb类型转换为float前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试以下查询
SELECT (json_data->'position'->'lat') + 1.0 AS lat FROM updates LIMIT 5;

(1.0就是强制转换为浮点数.我的实际查询要复杂得多,这个查询只是问题的一个测试用例.)

我收到错误

ERROR:  operator does not exist: jsonb + numeric

如果我添加显式转换:

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

错误变成:

ERROR:  operator does not exist: jsonb + double precesion

我知道大多数jsonb值都不能转换成浮点数,但在这种情况下我知道lats都是JSON数.

是否有一个函数将jsonb值转换为浮点数(或为uncastable返回NULL)?

有两种操作可以从JSON获取值.第一个 – >将返回JSON.第二个 – >>将返回文字.

细节:JSON Functions and Operators

尝试

SELECT (json_data->'position'->>'lat')::float + 1.0 AS lat
FROM updates
LIMIT 5
原文链接:https://www.f2er.com/postgresql/192852.html

猜你在找的Postgre SQL相关文章