云数据仓库ADBadb里round 的语法和mysql不一样是吗?[阿里云云原生数据仓库]

云数据仓库ADBadb里round 的语法和mysql不一样是吗?1216063.81944444525 这串数字我用 round(xx,0) 来提取,给我的结果是 1216064.00000000000,小数点后面的数字去不掉的么?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
3 条回复 A 作者 M 管理员
  1. 是的,云数据仓库ADB Adb中round函数的语法和MySQL不一样。在ADB中,使用round函数进行四舍五入时,需要指定保留的小数位数。例如,如果您想将数字1216063.81944444525四舍五入到小数点后两位,可以使用以下语法:

    round(1216063.81944444525, 2)

    这将返回结果1216063.82。请注意,ADB中的round函数默认使用标准SQL的舍入模式,即四舍五入到最接近的整数。因此,如果您想要保留小数点后的数字,请确保指定正确的小数位数。

  2. 可以参考这个文档:https://help.aliyun.com/zh/analyticdb-for-mysql/developer-reference/numeric-functions?spm=a2c4g.11186623.0.i17#section-qve-w3z-483 此回答整理自钉群“云数据仓库ADB-开发者群”

  3. 是的,DataWorks中的round函数和MySQL的round函数语法是不一样的。在DataWorks中,round函数的语法如下:
    round(x, d),其中x是需要处理的数,d是指保留几位小数。
    如果您想将1216063.81944444525四舍五入到整数,可以使用以下代码:
    round(1216063.81944444525, 0)
    这将返回1216064,因为小数点后的数字被四舍五入到0。
    如果您想将1216063.81944444525四舍五入到两位小数,可以使用以下代码:
    round(1216063.81944444525, 2)
    这将返回1216063.82,因为小数点后的数字被四舍五入到2位。

  4. 是的,云数据仓库ADB的round函数语法和MySQL有所不同。在云数据仓库ADB中,round函数的语法为round(number,places),其中number是要四舍五入的数字,places是要保留的小数位数。例如,如果您想要将1216063.81944444525四舍五入到整数,可以使用round(1216063.81944444525,0)。
    另外,您提到的小数点后面的数字去不掉的问题,是因为在云数据仓库ADB中,round函数默认四舍五入的精度为6位。如果您希望保留更多的小数位数,可以将places参数设置为更大的值。例如,如果您希望保留两位小数,可以使用round(1216063.81944444525,2)。