gpt4 book ai didi

sql - 如何在 SQL 中以 0.25 增量执行自定义回合?

转载 作者:行者123 更新时间:2023-12-02 01:25:46 25 4
gpt4 key购买 nike

我正在尝试在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com