在 SQL 服务器中自定义四舍五入小数值

Customize rounding a decimal value in SQL Server

我在 SQL 服务器中有一个值列表,需要进行一些自定义舍入。我尝试使用内置的 SQL 服务器功能,但这些功能不起作用。

我想将小数值舍入到最接近的 5 值

例如

您能否为 SQL 服务器中的这种情况提出一个可行的解决方案?

提前致谢

拉朱

您是否只处理 两个 十进制数字?

如果是这样,您可以使用这样的函数:

CREATE FUNCTION dbo.RoundToFive(@Input DECIMAL(16,2))
RETURNS DECIMAL(16,2)
AS
BEGIN
    RETURN ROUND(@Input*20 + 0.49, 0) / 20.0;
END;

如果你这样使用:

DECLARE @data TABLE (StartValue DECIMAL(16,2))

INSERT INTO @data (StartValue) 
VALUES (1.00), (1.02), (1.01), (1.03), (1.04), (1.05), (1.06)

SELECT StartValue, dbo.RoundToFive(StartValue)
FROM @data

你会得到这样的输出: