在SQL Server中舍入到最接近的500或1000

时间:2011-08-04 10:19:31

标签: sql sql-server

  

可能重复:
  Round UP to the nearest 100 in SQL Server

是否可以在SQL Server中将数字向上舍入到最接近的500或1000?

示例:

14425.00 - > 14500.00
14585.00 - > 15000.00

3 个答案:

答案 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;