PaliSkill
← SQL débutant

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 :

  • WHERE se combine librement avec des colonnes précises, SELECT *, ou des colonnes calculées.
  • Un calcul utilisé dans le WHERE doit être réécrit intégralement, indépendamment de ce qui est affiché dans le SELECT.

À 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 l'attestation finale.

5 000 XOF / 7,62 € / 8,31 $

Débloquez les 91 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.