J'utilise la ligne suivante dans un Select qui renvoie un nombre avec des nombres décimaux, par exemple 33.33333.
Comment est-ce que je peux arrondir ceci dans le choix et convertir en entiers de sorte que je n'ai pas de décimales, par exemple dans l'exemple ci-dessus il devrait renvoyer 33?
100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END) AS matchPercent
Merci beaucoup pour votre aide, Tim.
Vous pouvez utiliser la fonction ROUND
pour arrondir la valeur à l'entier:
ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0) AS matchPercent
Cela conservera le type, par exemple le float
arrondi restra float
. Si vous devez également renvoyer un type de données int
(ou d'autres types de données entiers), vous devez également le convertir:
CONVERT(INT, ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0)) AS matchPercent
Utilisez la fonction round
pour arrondir le nombre:
ROUND(100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0) AS matchPercent
Si vous souhaitez d'abord arrondir le nombre, puis le convertir en integer, vous pouvez également append 0,5 au nombre que vous souhaitez convertir en integer.