单位用Bex5平台进行应用的快速开发,而该平台用的不是SQL,而是KSQL,因此存在和一般SQL不一样的函数限制。
另外,SQL中默认的Round函数也是四舍六入五成双,用一般的round函数,遇到比如1.050这种情况,2位Round的结果是1.05,也就是舍五不进位,不是我们想要的。
MySQL中可以通过Cast的方法,用数据类型转换成decimal并指明小数位数的方式来实现真正的四舍五入,但是KSQL中不能使用CAST函数。
考虑到CAST函数完成的作业本质是数据类型转换,因此尝试用Convert达成相同效果,结果成功。
sql.convert(1.050,sql.decimal(10,2))
如果是正常SQL的话,把上面的sql.去掉即可。