说明:本文介绍
场景
在一次SQL查询时,需要对结果值保留两位小数,不四舍五入,直接截取到小数点后两位。如 59.156
到59.15
,23.2134
到23.21
,查看官方帮助文档(https://help.aliyun.com/zh/maxcompute/user-guide/mathematical-functions),找到了下面这个函数:
当我使用时,报下面的错误;
SELECT trunc(145.124, 2)
FROM table_name
LIMIT 1;
说函数的参数类型错了,要用字符串类型
但我换成字符串类型,得不到自己想要的结果,返回null;
SELECT trunc(145.124, '2')
FROM table_name
LIMIT 1;
解决
换一种思路,不用这个函数,将数值 × 100,然后向下取整(用floor函数),最后再除以100,如下,59.156
59.156 * 100 = 5915.6 ==> floor(5915.6) = 5915 ÷ 100 = 59.15