我已经在网上搜索了这个和很多资源。但我被这个简单的问题打动了
将int数四舍五入到最近的高整数
ex: 63 to 70
71 to 80
select ROUND(63,1)
select ROUND(63,-1)感谢你的帮助
发布于 2018-04-27 08:34:32
DECLARE @t TABLE (X INT)
INSERT INTO @t (X) VALUES(33),(43),(53),(63),(73)
Select floor((X + 9) / 10) * 10
FROM @t返回
40
50
60
70
80发布于 2018-04-27 08:39:09
DECLARE @Table TABLE (nums DECIMAL(5,1))
INSERT INTO @Table
VALUES (35),(53),(64)
SELECT nums,
(Convert(int,(nums/10)) + 1) * 10 AS Roundoff
FROM @Table结果
nums Roundoff
35.0 40
53.0 60
64.0 70发布于 2018-04-27 08:39:26
您不能直接使用圆形,因为没有内置的机制可以这样做。
但你可以简单地换一种方法:
SELECT ( ( ( x - 1 ) / 10 ) + 1 ) * 10这样你:
减去1除以10,放弃超过10的任何休息,这意味着你将把63变成6或70变成6(我想这很重要,因为你不想绕过70到80。)如果是的话,在除法前不要减去1)。然后加上一个(这是四舍五入的部分),然后乘以10。
如果您需要大量使用这一点,您可以定义一个自定义函数来完成它。
https://stackoverflow.com/questions/50058403
复制相似问题