Leçon 8 / 9 — Chapitre 2: WHERE : comparaisons et logique
WHERE avec colonnes précises et calculées
WHERE se combine sans restriction avec tout ce qui a été vu au premier chapitre : choisir des colonnes précises, utiliser SELECT *, ou afficher une colonne calculée — le filtre porte toujours sur les données de la table, indépendamment des colonnes réellement affichées.
SELECT nom, prix * stock FROM produits WHERE categorie = 'papeterie';
Ce code affiche, pour les produits de catégorie papeterie uniquement, leur nom et la valeur totale de leur stock (prix * stock, vu au premier chapitre). Le filtre WHERE s'applique avant que le calcul ne soit affiché : seules les lignes filtrées apparaissent, avec leur colonne calculée.
Un point important : on ne peut pas réutiliser directement une colonne calculée du SELECT dans la condition WHERE de la même requête (par exemple, WHERE prix * stock > 10000 ne peut pas référencer un nom donné à cette colonne calculée avec AS, puisque AS n'a pas encore été vu). Le calcul doit alors être réécrit intégralement dans le WHERE :
SELECT nom FROM produits WHERE prix * stock > 10000;
Ce code filtre directement sur le résultat du calcul prix * stock, sans jamais l'afficher dans le SELECT : seul Cahier (500 × 40 = 20000) et Savon (300 × 25 = 7500... en réalité inférieur à 10000, donc exclu) sont à vérifier ligne par ligne pour confirmer le résultat exact.
À retenir :
WHEREse combine librement avec des colonnes précises,SELECT *, ou des colonnes calculées.- Un calcul utilisé dans le
WHEREdoit être réécrit intégralement, indépendamment de ce qui est affiché dans leSELECT.
À vous de jouer : écrivez une requête qui affiche le nom et le prix des produits dont prix * stock dépasse 5000.
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 84 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès