如何将PostgreSQL 9.4的jsonb类型转换为float
发布时间:2020-12-13 16:35:00 所属栏目:百科 来源:网络整理
导读:我正在尝试以下查询: 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') + 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |