SQL Server: arrondir le nombre décimal et convertir en int (dans Select)

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.