【发布时间】:2020-05-07 14:55:31
【问题描述】:
假设我有一个表,它有两列,即数量和百分比,其中我的百分比是小数。现在我想将这两列相乘并将值四舍五入到小数点后两位。向下舍入意味着从 1 到 9 的所有数字都向下舍入。 SQL 中是否有像 Excel 中那样的内置函数?
例子:
13.567 should round to 13.56
136.7834 should round to 136.78
0.7699 should round to 0.76
我曾尝试在线搜索此类功能,但找不到合适的解决方案。
【问题讨论】:
-
是all in the fantastic manual,值得一读。
-
@MuhammadWaheed 不是重复的,因为这个问题涉及小数点舍入,而不是整数。
-
感谢@CoolBots 理解这个问题。通用 ROUND() 函数将 0-4 的值舍入为下面的一个值,将 5-9 的值舍入为上面的一个值。一般的 FLOOR() 函数给出一个不带小数的值。我想要的是说我的数字是 2.3456,它应该四舍五入到小数点后 3 位为 2.345 而不是 2.346。
-
解决问题的方法是截断多余的小数,这可以通过使用ROUND函数的额外参数ROUND(number, decimal_places, 0/1)来实现。这里如果最后一个参数不是0,它将截断而不是四舍五入,这相当于我正在寻找的excel的ROUNDDOWN()函数。