当前位置: 首页 > news >正文

Clickhouse异常:Exception: No operation equals between Decimal(X, X) and Float64

在使用clickhouse中的Decimal类型存储数字时,使用Decimal类型字段作为查询条件时,比如:

SELECT COUNT(*) AS total FROM table WHERE ( my_number=10.2)

会报错如下:Exception: No operation equals between Decimal(X, X) and Float64

原因是clickhouse会将10.2认为是float64类型,不是decimal类型,无法互转。

一般方法是可以用数据自带的转换函数,如:

SELECT COUNT(*) AS total FROM table WHERE ( my_number= toDecimal(10.2, 2))

SELECT COUNT(*) AS total FROM table WHERE ( toFloat64(my_number)= 10.2)

但是如果是在我们的mybatis-plus的wrapper条件代码里就不好用了,如:

.eq(TableModel::getMyNumber, 5.2d)

不管Decimal映射的java类型是Double还是BigDecimal都会报错,说到底它还是到数据库执行时报错了。

后来我发现,clickhouse会把字符串成功转成Decimal,而不会把数字转成Decimal,如下:

SELECT COUNT(*) AS total FROM table WHERE ( my_number= '10.2')

所以修改mybatis-plus的wrapper查询条件代码如下:

.eq(TableModel::getMyNumber, "5.2")

就可以成功了。

http://www.lryc.cn/news/324121.html

相关文章:

  • 会员中心微服务
  • element el-dialog里再调用其他组件,查找不到组件的方法
  • 【深度学习】四种天气分类 模版函数 从0到1手敲版本
  • Linux文件 profile、bashrc、bash_profile区别
  • blender记一下法线烘焙
  • 【LabVIEW FPGA入门】FPGA 存储器(Memory)
  • vue3+element Plus form 作为子组件,从父组件如何赋值?
  • Kafka系列之:Exactly-once support
  • Spring Boot2
  • 【idea做lua编辑器】IDEA下lua插件报错编辑器打不开(同时安装EmmyLua和Luanalysis这2个插件就报错,保留EmmyLua插件即可)
  • SpringCloud之网关组件Gateway学习
  • 全球大型语言模型(LLMS)现状与比较
  • Git Commit 提交规范,变更日志、版本发布自动化和 Emoji 提交标准
  • Spark与flink计算引擎工作原理
  • Excel数字乱码怎么回事 Excel数字乱码怎么调回来
  • 实例:NX二次开发使用链表进行拉伸功能(链表相关功能练习)
  • 【VSTO开发】遍历 Ribbon 中的所有控件或按钮
  • 上位机图像处理和嵌入式模块部署(qmacvisual图像识别)
  • 当Java 22遇到 SpringBoot 3.3.0!
  • 贪吃蛇(C语言超详细版)
  • python(django)之流程接口管理后台开发
  • Hive入门
  • 【神经网络】得分函数,损失函数~
  • FFmepg--AVFilter过滤器使用以及yuv视频裁剪
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • string类的详细模拟实现
  • 【EasyX】 使用说明
  • 以太坊基金会JUSTIN DRAKE确认出席Hack.Summit() 2024区块链开发者大会
  • 数学建模常用代码
  • 学点儿Java_Day7_在实体类当中IDEA无法进行单元测试(@Test没有启动按钮)