是否可以在SQL Server中将数字向上舍入到最接近的500或1000?
示例:
14425.00 - > 14500.00
14585.00 - > 15000.00
答案 0 :(得分:1)
总是四舍五入:
((value+499)/500)*500
向上或向下舍入:
((value+250)/500)*500
答案 1 :(得分:1)
我会使用这个,通过示例数据
declare @num int
set @num = 749
select (round(((@num+250)/500),0)*500)
Result = 500
或显示它的作品
declare @num int
set @num = 750
select (round(((@num+250)/500),0)*500)
Result = 1000
然而,包装成一般功能将是明智的
CREATE FUNCTION ufnRoundMyValue
(
@val int,
@base int
)
RETURNS int
AS
BEGIN
declare @res int
select @res = (round(((@val+(@base/2))/@base),0)*@base)
RETURN @res
END
GO
那么它只是
select dbo.ufnRoundMyValue(749,500)
您需要的任何地方
答案 2 :(得分:0)
SELECT (((col+250)/500)*500) FROM table;