SELECT WHEN ...AND

L'opérateur logique AND est utilisé en SQL pour combiner plusieurs conditions au sein d'une clause WHERE
. Pour qu'une ligne de données soit incluse dans le résultat de la requête, toutes les conditions séparées par AND doivent être satisfaites.
En d'autres termes, chaque condition doit renvoyer la valeur "VRAI" pour que la ligne soit sélectionnée.

SELECT colonne1, colonne2
FROM table
WHERE condition1 AND condition2;

Questions & répones

Maintenant, voici 20 exemples d'utilisation de l'opérateur AND avec les tables "produits," "clients," et "ventes" :
  • Q (AND): Sélectionnez tous les produits de la catégorie "Électronique" dont le prix est supérieur à 500.
    SELECT * FROM produits WHERE categorie = 'Électronique' AND prix > 500;
    
  • Q (AND): Sélectionnez tous les clients de la ville "New York" dont le nom est "Smith."
    SELECT * FROM clients WHERE ville = 'New York' AND nom = 'Smith';
    
  • Q (AND): Sélectionnez toutes les ventes effectuées par le client avec l'ID 3 et le produit avec l'ID 5.
    SELECT * FROM ventes WHERE idClient = 3 AND idProduit = 5;
    
  • Q (AND): Sélectionnez tous les produits de la catégorie "Vêtements" dont le prix est compris entre 50 et 100.
    SELECT * FROM produits WHERE categorie = 'Vêtements' AND prix >= 50 AND prix <= 100;
    
  • Q (AND): Sélectionnez tous les clients de la ville "Los Angeles" dont le numéro de téléphone est spécifié.
    SELECT * FROM clients WHERE ville = 'Los Angeles' AND tel IS NOT NULL;
    
  • Q (AND): Sélectionnez toutes les ventes effectuées par le client avec l'ID 1 après le 1er janvier 2023.
    SELECT * FROM ventes WHERE idClient = 1 AND dateVente > '2023-01-01';
    
  • Q (AND): Sélectionnez tous les produits dont le prix est supérieur à 100 et la quantité en stock est supérieure à 10.
    SELECT * FROM produits WHERE prix > 100 AND quantiteStock > 10;
    
  • Q (AND): Sélectionnez tous les clients dont le nom commence par "A" et qui ont effectué des achats pour un montant total supérieur à 500.
    SELECT * FROM clients WHERE nom LIKE 'A%' AND id IN (
        SELECT idClient FROM ventes GROUP BY idClient HAVING SUM(prixVente * QuantiteVendue) > 500
    );
    
  • Q (AND): Sélectionnez tous les produits de la marque "Sony" de la catégorie "Électronique" dont le prix est supérieur à 300.
    SELECT * FROM produits WHERE marque = 'Sony' AND categorie = 'Électronique' AND prix > 300;
    
  • Q (AND): Sélectionnez tous les clients dont le nom commence par "J" et qui vivent à "Chicago" ou "San Francisco."
    SELECT * FROM clients WHERE nom LIKE 'J%' AND (ville = 'Chicago' OR ville = 'San Francisco');
    
  • Q (AND avec DISTINCT): Sélectionnez toutes les marques distinctes de produits vendus à un client spécifique (par exemple, client avec l'ID 2) et dont le prix de vente est inférieur à 200.
    SELECT DISTINCT p.marque
    FROM produits p
    JOIN ventes v ON p.id = v.idProduit
    WHERE v.idClient = 2 AND v.prixVente < 200;
    
  • Q (AND avec DISTINCT): Sélectionnez tous les clients dont le nom commence par "M" et qui ont effectué des achats pour un montant total supérieur à 1000 (utilisation de DISTINCT pour éviter les doublons).
    SELECT DISTINCT c.nom
    FROM clients c
    JOIN ventes v ON c.id = v.idClient
    GROUP BY c.nom
    HAVING SUM(v.prixVente * QuantiteVendue) > 1000;
    
  • Q (AND avec DISTINCT): Sélectionnez toutes les marques distinctes de produits vendus à un client spécifique (par exemple, client avec l'ID 3) et dont la date de vente est postérieure au 1er juillet 2023.
    SELECT DISTINCT p.marque
    FROM produits p
    JOIN ventes v ON p.id = v.idProduit
    WHERE v.idClient = 3 AND v.dateVente > '2023-07-01';
    
  • Q (AND avec DISTINCT): Sélectionnez tous les clients dont le nom commence par "S" et qui ont effectué des achats dans deux catégories distinctes de produits (utilisation de DISTINCT pour éviter les doublons).
    SELECT DISTINCT c.nom
    FROM clients c
    JOIN ventes v ON c.id = v.idClient
    JOIN produits p ON v.idProduit = p.id
    WHERE p.categorie IN ('Électronique', 'Vêtements')
    GROUP BY c.nom
    HAVING COUNT(DISTINCT p.categorie) = 2;
    
  • Q (AND avec DISTINCT): Sélectionnez toutes les villes distinctes des clients qui ont effectué des achats d'un montant total supérieur à 500, dans la catégorie "Électronique" et après le 1er août 2023.
    SELECT DISTINCT c.ville
    FROM clients c
    JOIN ventes v ON c.id = v.idClient
    JOIN produits p ON v.idProduit = p.id
    WHERE p.categorie = 'Électronique' AND v.dateVente > '2023-08-01'
    GROUP BY c.ville
    HAVING SUM(v.prixVente * QuantiteVendue) > 500;
    
    
  • Q (AND avec DISTINCT): Sélectionnez tous les produits distincts vendus à un client spécifique (par exemple, client avec l'ID 4) et dont la quantité vendue est supérieure à 3 (utilisation de DISTINCT pour éviter les doublons).
    SELECT DISTINCT p.nom
    FROM produits p
    JOIN ventes v ON p.id = v.idProduit
    WHERE v.idClient = 4 AND v.QuantiteVendue > 3;
    
  • Q (AND avec DISTINCT): Sélectionnez toutes les villes distinctes des clients qui ont effectué des achats pour un montant total supérieur à 100 et dont au moins un achat a été effectué dans la catégorie "Vêtements" (utilisation de DISTINCT pour éviter les doublons).
    SELECT DISTINCT c.ville
    FROM clients c
    JOIN ventes v ON c.id = v.idClient
    JOIN produits p ON v.idProduit = p.id
    WHERE p.categorie = 'Vêtements'
    GROUP BY c.ville
    HAVING SUM(v.prixVente * QuantiteVendue) > 100;
    
  • Q (AND avec DISTINCT): Sélectionnez tous les produits distincts vendus à un client spécifique (par exemple, client avec l'ID 5) et dont le prix de vente est compris entre 100 et 200 (utilisation de DISTINCT pour éviter les doublons).
    SELECT DISTINCT p.nom
    FROM produits p
    JOIN ventes v ON p.id = v.idProduit
    WHERE v.idClient = 5 AND v.prixVente >= 100 AND v.prixVente <= 200;