首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RoundFunctionSQL至最近的10

RoundFunctionSQL至最近的10
EN

Stack Overflow用户
提问于 2018-04-27 08:31:53
回答 4查看 223关注 0票数 2

我已经在网上搜索了这个和很多资源。但我被这个简单的问题打动了

int数四舍五入到最近的高整数

代码语言:javascript
复制
ex: 63  to 70
    71  to 80 

select ROUND(63,1) 
select ROUND(63,-1)

感谢你的帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-27 08:34:32

代码语言:javascript
复制
DECLARE @t TABLE (X INT)
INSERT INTO @t (X) VALUES(33),(43),(53),(63),(73)

Select floor((X + 9) / 10) * 10
FROM @t

返回

代码语言:javascript
复制
40
50
60
70
80
票数 4
EN

Stack Overflow用户

发布于 2018-04-27 08:39:09

代码语言:javascript
复制
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

结果

代码语言:javascript
复制
nums Roundoff
35.0    40
53.0    60
64.0    70
票数 0
EN

Stack Overflow用户

发布于 2018-04-27 08:39:26

您不能直接使用圆形,因为没有内置的机制可以这样做。

但你可以简单地换一种方法:

代码语言:javascript
复制
SELECT ( ( ( x - 1 ) / 10 ) + 1 ) * 10

这样你:

减去1除以10,放弃超过10的任何休息,这意味着你将把63变成6或70变成6(我想这很重要,因为你不想绕过70到80。)如果是的话,在除法前不要减去1)。然后加上一个(这是四舍五入的部分),然后乘以10。

如果您需要大量使用这一点,您可以定义一个自定义函数来完成它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50058403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档