La soustraction ne sert pas qu’aux opérations numériques ! SQL Server propose plusieurs fonctions et opérateurs intégrés pour soustraire aussi bien des nombres que des dates. Et contrairement au calcul sur papier, il faut toujours penser à NULL. Passons tout de suite aux exemples.
Comprendre les opérations de soustraction dans SQL Server
Dans SQL Server, la soustraction intervient généralement dans deux cas : faire des calculs sur des données numériques et manipuler des valeurs datetime. Soustraire des valeurs s’avère souvent pratique quand tu dois générer des valeurs calculées directement dans SQL Server.
Soustraction de base
Commençons par une soustraction simple pour bien saisir le concept. Imaginons une table « Orders » contenant les colonnes « TotalAmount » et « DiscountAmount ».
SELECT TotalAmount, DiscountAmount,
TotalAmount - DiscountAmount AS ActualAmount
FROM Orders;
Dans cet exemple simple, on soustrait « DiscountAmount » de « TotalAmount » et on renvoie le résultat sous le nom « ActualAmount ».
Utiliser la soustraction sur des intervalles de temps
La soustraction sert aussi souvent à calculer l’écart entre deux datetimes. SQL Server propose plusieurs types de date et heure : smalldatetime, datetime, datetime2, datetimeoffset. On peut utiliser la fonction DATEDIFF() pour soustraire des dates.
Exemple :
SELECT OrderID, OrderDate,
DATEDIFF(day, OrderDate, GETDATE()) AS DaysElapsed
FROM Orders;
Cette commande calcule et affiche le nombre de jours écoulés entre la date de chaque commande et aujourd’hui (GETDATE renvoie la date du jour).
Agréger des jeux de résultats avec la soustraction dans SQL Server
Agréger des jeux de résultats à l’aide de la soustraction est aussi très courant dans SQL Server. Par exemple, tu peux avoir besoin d’agréger le total des ventes sur une période et d’en soustraire le total des remises accordées sur cette même période.
Exemple :
SELECT
( SELECT SUM(TotalAmount) FROM Orders where OrderDate like '2022-%' ) -
( SELECT SUM(DiscountAmount) FROM Orders where OrderDate like '2022-%' ) as NetSales
La commande ci-dessus affiche les ventes nettes de l’année 2022 en soustrayant le total des remises du total des ventes.
Gérer NULL
Dans SQL Server, une soustraction impliquant NULL renvoie NULL. Si tu préfères traiter NULL comme 0, il est important de gérer ces cas pour éviter des NULL inattendus dans tes résultats. Ce n’est pas toujours pertinent, alors agis avec discernement.
SELECT OrderID,
ISNULL(TotalAmount, 0) - ISNULL(DiscountAmount, 0) AS NetAmount
FROM Orders;
Te voilà pro de la soustraction
Il existe d’autres façons de soustraire efficacement des valeurs dans SQL Server, alors continue à jouer avec ces commandes et n’hésite pas à explorer par toi-même. Chaque requête que tu écris te rapproche un peu plus de la maîtrise de SQL Server. Bonnes requêtes !
Cet article a été rédigé pour SQL Server. Toutes les commandes et explications concernent donc SQL Server. Pour savoir comment ces commandes fonctionnent sur d’autres moteurs de base de données, consulte la documentation officielle de la base concernée.
Beekeeper Studio est une interface SQL Server gratuite et open source
Je suis passé de SQL Server sans aucune difficulté — Beekeeper Studio a amélioré mon flux de travail, avec une expérience plus épurée, de meilleures performances et plus de flexibilité. - Aman Bhattarai
Beekeeper Studio est un client SQL Server rapide, intuitif et facile à utiliser. Il prend aussi en charge plein d’autres bases de données et fonctionne parfaitement sous Windows, Mac et Linux.
Ce que les utilisateurs de SQL Server disent de Beekeeper Studio
De loin l’interface d’administration de bases de données la plus complète du marché. Si je n’ai pas mis 5 étoiles, c’est seulement parce que je ne peux pas prétendre l’avoir utilisée à fond, puisque je l’ai découverte il y a deux semaines. Mais pour l’instant, mySQL, MSSQL et Postgres dans un seul outil, c’est tout simplement incroyable.
Je compte l’acheter dès que ma paie tombe.
J’utilisais la version gratuite de Beekeeper Studio depuis un moment, mais quand j’ai eu besoin de travailler avec des bases MongoDB, je suis passé à la version payante. Et honnêtement, j’étais opérationnel en un rien de temps. Beekeeper est soigné, rapide, et ça marche, tout simplement. Très intuitif, très facile à utiliser. Je travaille avec MongoDB, Postgresql, SQL Server et d’autres bases de données dans mon boulot, et avoir un seul outil qui sait leur parler à toutes, c’est génial.
Merci, Matthew et toute l’équipe !