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. p> J'ai besoin p>
@Order = 1,2,3,4 code> pour arrondir jusqu'à 5 li>
@Order = 6,7,8,9 code> pour arrondir jusqu'à 10 li>
@Order = 11,12,13,14 code> pour arrondir jusqu'à 15 li>
ul> p>
4 Réponses :
Utilisez la fonction de plafond
SELECT CEILING(@Order / 5.0) * 5
Ne fonctionne pas. E.g Sélectionner plafond (2/5) * 5 code> produit 0 code> pendant qu'il doit produire 5 code>
Vous devez faire le diviseur réel code> pour faire ce travail. Ce Sélectionnez Plafond (@order / 5.) * 5 code> Works - avec point ajouté.
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
SELECT CEILING(@Order / 5.0) * 5
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
Dupliquer de Stackoverflow.com/questions/15098090/Rounding-up-tsql