当前位置: 首页 > 面试题库 >

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

鲁浩渺
2023-03-14
问题内容

我正在尝试以下查询:

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值不能转换为浮点数,但是在这种情况下,我知道纬度都是JSON编号。

是否有一个将jsonb值强制转换为浮点数(或为不可广播的返回NULL)的函数?


问题答案:

要从中获得价值,有两种操作JSON。第一个->将返回JSON。第二个->>将返回文本。

详细信息:JSON函数和运算符

尝试

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


 类似资料:
  • 问题内容: 我正在使用像XML dateTime类型的“ 2011-02-27T10:03:33.099-06:00”这样的字符串来获取时间。我也有TimeZone类型的时区。我应该如何在该时区将dateTime转换为GregorianCalendar java类型。 问题答案: Java内置了用于解析xml日期时间的代码:使用DatatypeConverter.parseDateTime()。这

  • 问题内容: 如何将reflect.Value转换为其类型? 谢谢! 问题答案: 好,我找到了 具有将其转换为

  • 我正在尝试有一个通量通用转换器使用通用类型在Java 8。我把我的代码建立在这个答案的基础上。其思想基本上是实现这个特定的转换器->: 类型转换器->转换为我想要的任何类型。因此,我正在使用构造函数创建一个类型为的类,并返回一个方法。我想在调用上创建类似这样的多个条目:,但类类型不同。但它甚至对整数也不起作用。 当我使用此单元测试进行测试时,我得到错误:。

  • 我所拥有的是Postgresql中的一个文本列,我想将其转换为JSONB列。 null 是否有一种方法可以将文本完全转换为jsonb,以便能够成功地从test中查询? 我不想在下面的查询中将文本转换为json,因为稍后我需要在'a'上创建索引。

  • 当运行此代码时,我得到以下错误:

  • 我有一个类型 现在我想做这样的事情。 如何将我的 转换为基元类型? 它给我的错误是: 将“Rating”类型转换为“number”类型可能是错误的,因为这两种类型都没有充分重叠。如果这是有意的,首先将表达式转换为“未知” 我已经经历过了,但我想要的是它的反面 编辑: tsconfig.json tsc版本:3.2.1