Comment tronquer les chiffres après la virgule en SQL ?

En SQL, il arrive que dans les calculs ou dans les requêtes on se retrouve avec des décimales en trop. Il existe une méthode pour arrondir un nombre.

En SQL, il arrive souvent que dans les calculs ou dans les requêtes on se retrouve avec des décimales en trop. Il existe une méthode permettant d'arrondir un nombre, il s'agit de la méthode ROUND. Il faut préciser en paramètres le nombre que l'on souhaite arrondir puis le nombre de décimales souhaité.

Exemple :

SELECT ROUND(123,456, 2) //La requête suivante retournera le résultat 123,46.
SELECT ROUND(123,123, 2) //La requête suivante retournera le résultat 123,12.

L'extension Transact-SQL modifie la fonction ROUND en lui ajoutant un troisième paramètre. Si ce paramètre est égal à 0, alors la fonction arrondira le nombre, sinon il le tronquera. Il est ainsi possible de tronquer n'importe quel nombre.

SELECT ROUND(123,456, 2) //La requête suivante retournera le résultat 123,45.
SELECT ROUND(123,123, 2) //La requête suivante retournera le résultat 123,12.

Si vous ne disposez pas de l'extension Transact-SQL, il est possible de parvenir au même résultat grâce à un calcul. Il faut soustraire au nombre de départ le même nombre modulo 0.001 (pour 2 décimales, avec autant de zéros après la virgule que de décimales). Pour supprimer le zéro en trop qui résultera du calcul, il suffit de convertir le résultat en nombre décimal avec autant de chiffres après la virgule que souhaités.

select cast((123.456-(123.456%.001)) as decimal (18,2)) //La requête suivante retournera 123,45.

SQL