12
votes

SQL arrondi jusqu'à un multiple de 5?

Bonjour je me demandais est là un moyen d'arrondir à un multiple de 5 de 5 en SQL?

Par exemple, ce n'est que des arrondis jusqu'à dix si je mets @Order = 8 ou 9 mais quand il fait partie de 7 ou 6 arrondis jusqu'à 5, j'en ai besoin pour arrondir jusqu'à 10 quand il est 6 ou 7. xxx

J'ai besoin

  • @Order = 1,2,3,4 pour arrondir jusqu'à 5
  • @Order = 6,7,8,9 pour arrondir jusqu'à 10
  • @Order = 11,12,13,14 pour arrondir jusqu'à 15

4 Réponses :


12
votes

Utilisez la fonction de plafond

SELECT CEILING(@Order / 5.0) * 5


2 commentaires

Ne fonctionne pas. E.g Sélectionner plafond (2/5) * 5 produit 0 pendant qu'il doit produire 5


Vous devez faire le diviseur réel pour faire ce travail. Ce Sélectionnez Plafond (@order / 5.) * 5 Works - avec point ajouté.



-1
votes

Voici une autre approche du même problème.

declare @num as int
set @num = 12

select @num + case when @num%5=0 then 0 else 5-(@num%5) end 


0 commentaires

4
votes
SELECT CEILING(@Order / 5.0) * 5

0 commentaires

2
votes

Si vous ne voulez pas utiliser de fonctions intégrées et évitez d'utiliser les instructions code> code>, consultez celui-ci:

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


0 commentaires