我正在尝试在 SQL 中创建一个自定义舍入,以 0.25 向上或向下舍入,但我不确定这是否真的可能与我想要完成的任务有关。
我已经尝试过 ROUND 语句,但似乎您只能指定将数字四舍五入到的小数位数...我在这里可能是错的,但正在寻找一些指导。
四舍五入应遵循以下规则:
首先检查:
如果小数点后的值在 0.00 到 0.25 之间:
如果小数点后的值大于或等于 0.125,则四舍五入到 0.25
如果小数点后的值小于 0.125,则向下舍入为 .00
如果小数点后的值介于 0.25 和 0.50 之间:
如果小数点后的值大于或等于 0.375,则四舍五入至 0.50
如果小数点后的值小于 0.375,则向下舍入为 0.25
如果小数点后的值在 0.50 到 0.75 之间:
如果小数点后的值大于或等于 0.625,则四舍五入到 0.75
如果值小于 0.625,则向下舍入为 0.50
如果小数点后的值介于 0.75 和 0.99 之间:
如果小数点后的值大于或等于 0.875,则四舍五入为整数
如果小数点后的值小于 0.875,则向下舍入为 0.75
因此所有值都将是:
X.00
X.25
X.50
X.75
例如,
4.416 应四舍五入为 4.50
2.75 仍为 2.75
5.834 应向下舍入为 5.75
7.083 应向下舍入为 7.00
最佳答案
只需一点数学知识... convert(decimal(10,2),...)
是可选的
Declare @YourTable Table ([SomeCol] decimal(10,4)) Insert Into @YourTable Values
(4.416)
,(2.75)
,(5.834)
,(7.083)
Select *
,NewValue = convert(decimal(10,2),round(SomeCol/.25,0)*.25)
From @YourTable
结果
SomeCol NewValue
4.4160 4.50
2.7500 2.75
5.8340 5.75
7.0830 7.00
关于sql - 如何在 SQL 中以 0.25 增量执行自定义回合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74708973/