T-SQL : Suppression des décimales du type de données Monnaie

Lors de la manipulation de données financières dans SQL Server, notamment en utilisant le langage T-SQL, vous pourriez avoir besoin de manipuler des nombres d’une manière qui les dépouille de leurs points décimaux. Pour ceux qui utilisent le type de données Monnaie dans SQL Server 2005, vous vous demandez peut-être s’il existe une meilleure approche que de convertir le nombre en chaîne de caractères puis de supprimer le point décimal par la manipulation de chaînes. Explorons une méthode efficace pour y parvenir.

L’approche courante

De nombreux développeurs SQL gèrent la suppression des points décimaux des types Monnaie en convertissant d’abord le nombre en varchar et en utilisant la fonction REPLACE. Par exemple :

SELECT REPLACE(1.23, '.', ''), REPLACE(19.99, '.', '')

Ce code remplace le point décimal, produisant les entiers souhaités 123 et 1999. Cependant, cette méthode peut sembler encombrante et pas idéale en termes de performance ou de lisibilité.

Une solution plus efficace

Une solution plus élégante vous permet d’obtenir le même résultat sans conversions inutiles. Au lieu de convertir en une chaîne de caractères, vous pouvez multiplier la valeur Monnaie par 100 puis la convertir en INT. Cette méthode est simple et exploite efficacement les fonctionnalités de T-SQL. Voici comment procéder :

Mise en œuvre étape par étape

  1. Multiplier la valeur Monnaie par 100 : Cela décale le point décimal de deux positions vers la droite. Par exemple, 1.23 devient 123 et 19.99 devient 1999.
  2. Convertir en INT : La conversion en INT écarte tous les points décimaux, vous laissant avec un nombre entier propre.

Exemple de mise en œuvre

Voici un exemple pratique pour illustrer la solution en action :

SELECT CAST(1.23 * 100 AS INT) AS Montant1,
       CAST(19.99 * 100 AS INT) AS Montant2

Ce code retournera :

  • Montant1 : 123
  • Montant2 : 1999

Pourquoi cette méthode est préférable

  • Performance : Multiplier et caster est généralement plus rapide que la manipulation de chaînes, surtout avec de grands ensembles de données.
  • Simplicité : Le code est plus facile à lire et à maintenir, ce qui le rend simple pour quiconque examine ou utilise les scripts SQL.
  • Intégrité des données : En restant dans les types numériques et en évitant la conversion en chaînes, vous minimisez le risque d’introduire des erreurs ou des comportements inattendus dus à un formatage incorrect.

Conclusion

En utilisant T-SQL dans SQL Server 2005, la suppression des décimales des types de données Monnaie peut être effectuée efficacement en multipliant la valeur par 100 et en la convertissant en entier. Cette approche est plus simple, plus rapide et garantit l’intégrité des données. La prochaine fois que vous aurez besoin de manipuler des valeurs Monnaie dans vos requêtes, envisagez cette méthode pour une solution plus propre et plus efficace.