在SQL Server中,是否有办法轻易地将数字 向上 取整到最接近100(或1000、500、200等)的整数?
例如:
720 -> 800
790 -> 800
1401 -> 1500
在SQL Server中,是否有办法轻易地将数字 向上 取整到最接近100(或1000、500、200等)的整数?
例如:
720 -> 800
790 -> 800
1401 -> 1500
以下内容应该可以正常工作。在阅读了您的问题后,我不确定您希望100返回什么。对于此情况,100会返回100。
select floor((X + 99) / 100) * 100;
这将产生以下结果:0 -> 0
1 -> 100
99 -> 100
100 -> 100
101 -> 200
要将数字四舍五入到最近的千位数,请尝试以下方法:
select round(YourValue, -3)
SELECT ROUND(129.0/100, 0) * 100
返回100而不是200。 - GyromiteDECLARE @Number DECIMAL, @RoundUp DECIMAL
SET @RoundUp = 100
SET @Number = 720
SELECT CEILING(@Number/@RoundUp)*@RoundUp
Try this:
select round(@value , -2);
select round(129.0, -2);
返回100而不是200。 - Gyromite使用简单的 ROUND
函数,将数字四舍五入到最接近的十位倍数非常简单。
例如:
SELECT ROUND(number/1000,2)*1000
对于整数值它运作得很好:
@roundUpValue = ((@intValue / 1000) + 1) * 1000
@roundDownValue = (@intValue / 1000) * 1000
declare @intValue as int = 1934
select ((@intValue / 1000) + 1) * 1000 as roundUp
select (@intValue / 1000) * 1000 as roundDown
select ((@intValue / 500) + 1) * 500 as roundUp
select (720 - MOD(720,100)) + 100 from dual;
select (800 - (800 %100)) + 100;
将给出900而不是800。 - GyromiteSelect round(value/100,0)*100
无论你想要舍入到哪个数字,只需在此处发布该数字,而不是100
。