sql四舍五入到5的倍数?

sql四舍五入到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四舍

您好,我想知道有没有一种方法可以在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
    四舍五入至15

使用天花板功能

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