sql округление до кратного 5?
Привет мне было интересно, есть ли способ округлить до нескольких 5 в SQL?
например, это округляет только до десяти, если я установил @Order = 8 или 9, но когда это 7 или 6, он округляется до 5, мне нужно, чтобы округлить до 10, когда это 6 или 7.
declare @Order int
set @Order = 7
select round(cast(@Order as float)/cast(5 as float),0)*5
мне нужно
-
@Order = 1,2,3,4
округлить до 5 -
@Order = 6,7,8,9
округлить до 10 -
@Order = 11,12,13,14
округлить до 15
4 ответов
Если вы не хотите использовать встроенные функции и избегать использования 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
вот еще один подход к той же проблеме.
declare @num as int
set @num = 12
select @num + case when @num%5=0 then 0 else 5-(@num%5) end