sql四舍五入到5的倍数?
您好,我想知道有没有一种方法可以在SQL中取整为5的倍数 例如,如果我设置@Order=8或9,这只舍入到10,但是当它是7或6时,它舍入到5,当它是6或7时,我需要它舍入到10sql四舍五入到5的倍数?,sql,sql-server,tsql,Sql,Sql Server,Tsql,您好,我想知道有没有一种方法可以在SQL中取整为5的倍数 例如,如果我设置@Order=8或9,这只舍入到10,但是当它是7或6时,它舍入到5,当它是6或7时,我需要它舍入到10 declare @Order int set @Order = 7 select round(cast(@Order as float)/cast(5 as float),0)*5 我需要 @Order=1,2,3,4四舍五入 @Order=6,7,8,9四舍五入至10 @Order=11,12,13,14四舍
declare @Order int
set @Order = 7
select round(cast(@Order as float)/cast(5 as float),0)*5
我需要
四舍五入@Order=1,2,3,4
四舍五入至10@Order=6,7,8,9
四舍五入至15@Order=11,12,13,14
SELECT CEILING(@Order / 5.0) * 5
这里是解决同样问题的另一种方法
declare @num as int
set @num = 12
select @num + case when @num%5=0 then 0 else 5-(@num%5) end
如果您不想使用内置函数并避免使用
CASE
语句,请查看以下语句:
select @Order, 5 * ((@Order+4) / 5)
对于前20个数字,结果如下所示:
number rounded
----------- -----------
1 5
2 5
3 5
4 5
5 5
6 10
7 10
8 10
9 10
10 10
11 15
12 15
13 15
14 15
15 15
16 20
17 20
18 20
19 20
20 20
的副本不起作用。e、 g
选择上限(2/5)*5
产生0
而它需要产生5
您需要使除数为实数
才能工作。此选择天花板(@Order/5.)*5
有效-添加点。
number rounded
----------- -----------
1 5
2 5
3 5
4 5
5 5
6 10
7 10
8 10
9 10
10 10
11 15
12 15
13 15
14 15
15 15
16 20
17 20
18 20
19 20
20 20