В соответствии с @ anwser J0e3gan «с, Sql Server's Round позволяет округлением до ближайших 10 полномочий с использованием параметра length
, где длина 10^(-length)
, например,
length = 0 : 10^0 = nearest 1
length = 3 : 10^-3 = nearest .001
length = -3 : 10^3 = nearest 1000
т.д.
Однако, в общем, с помощью простого 1-функции на основе округления - например, (Sql Круглый с длиной = 0) для округления до произвольного значения «ближайшего N» - с формулой:
round(X/N) * N
например, ближайшие 100
select round(12345/100.0, 0) * 100.0 -- 12300
select round(-9876/100.0, 0) * 100.0 -- -9900
select round(-9849/100.0, 0) * 100.0 -- -9800
... Ближайшие 0,5
select round(5.123/0.5, 0) * 0.5 -- 5.000
select round(6.499/0.5, 0) * 0.5 -- 6.500
select round(-4.499/0.5, 0) * 0.5 -- -4.50
... Ближайший 0,02
select round(5.123/.02, 0) * .02 -- 5.12
select round(-9.871/.02, 0) * .02 -- -9.88
и т.д.
Помните, что тип, используемый для делителей должны быть числовыми/десятичной или плавающей.
Вы должны написать udf. –