La clause 'WITH' en SQL est utilisée pour donner un nom à une sous-requête, qui est alors stockée temporairement pour être utilisée dans une instruction SELECT principale. Cette fonctionnalité est particulièrement utile lorsque vous travaillez avec des requêtes complexes, car elle permet de diviser une grande requête en segments plus petits et plus gérables.
L'avantage clé de la clause 'WITH' est sa lisibilité. Il est plus facile de comprendre une séquence d'instructions clairement étiquetées que d'essayer de décoder un enchevêtrement de sous-requêtes imbriquées.
Considérez l'exemple suivant:
WITH Sales_CTE (SalesPersonID, NumberOfOrders)
AS
(
SELECT SalesPersonID, COUNT(OrderID)
FROM SalesOrderHeader
GROUP BY SalesPersonID
)
SELECT AVG(NumberOfOrders)
FROM Sales_CTE;
Dans cet exemple, nous définissons une sous-requête nommée "Sales_CTE" qui compte le nombre de commandes pour chaque vendeur dans la table "SalesOrderHeader". Ensuite, dans l'instruction SELECT principale, nous utilisons cette sous-requête pour calculer le nombre moyen de commandes par vendeur.
Il est important de noter qu'une sous-requête définie avec la clause 'WITH' est à usage unique et n'existe pas au-delà de la requête principale. Cela signifie qu'elle n'occupe pas d'espace de stockage supplémentaire dans votre base de données et ne persiste pas une fois la requête exécutée.
En résumant, l'utilisation de la clause 'WITH' peut faciliter grandement la lecture et l'écriture des requêtes SQL complexes, ce qui rend votre code plus maintenable et moins sujet aux erreurs.