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 latFROM updatesliMIT 5总结
以上是内存溢出为你收集整理的如何将PostgreSQL 9.4的jsonb类型转换为float全部内容,希望文章能够帮你解决如何将PostgreSQL 9.4的jsonb类型转换为float所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)