SELECT WHEN ...OR

L'opérateur logique OR est utilisé en SQL pour combiner plusieurs conditions dans une clause WHERE.
Contrairement à l'opérateur AND( qui exige que toutes les conditions soient vraies pour qu'une ligne soit incluse dans le résultat)
, l'opérateur OR exige que l'une au moins des conditions soit vraie pour qu'une ligne soit sélectionnée.
SELECT colonne1, colonne2
FROM table
WHERE condition1 OR condition2;

Questions & répones

exemples d'utilisation de l'opérateur OR avec les tables "produits," "clients," et "ventes" :
  • Q (OR): Sélectionnez tous les produits de la catégorie "Électronique" ou "Vêtements."
    SELECT * FROM produits WHERE categorie = 'Électronique' OR categorie = 'Vêtements';
    
  • Q (OR): Sélectionnez tous les clients de la ville "New York" ou "Los Angeles."
    
    SELECT * FROM clients WHERE ville = 'New York' OR ville = 'Los Angeles';
    
  • Q (OR): Sélectionnez toutes les ventes effectuées par le client avec l'ID 3 ou le client avec l'ID 5.
    SELECT* FROM ventes WHERE idClient = 3 OR idClient = 5;
    
  • Q (OR): Sélectionnez tous les produits de la catégorie "Vêtements" ou "Chaussures."
    SELECT* FROM produits WHERE categorie = 'Vêtements' OR categorie = 'Chaussures';
    
  • Q (OR): Sélectionnez tous les clients de la ville "New York" ou "San Francisco."
    SELECT* FROM clients WHERE ville = 'New York' OR ville = 'San Francisco';
    
  • Q (OR): Sélectionnez toutes les ventes effectuées par le client avec l'ID 2 ou le client avec l'ID 4.
    SELECT* FROM ventes WHERE idClient = 2 OR idClient = 4;
    
  • Q (OR): Sélectionnez tous les produits dont le prix est inférieur à 50 ou la quantité en stock est supérieure à 20.
    SELECT* FROM produits WHERE prix < 50 OR quantiteStock > 20;
    
  • Q (OR): Sélectionnez tous les clients dont le nom commence par "A" ou "B."
    SELECT* FROM clients WHERE nom LIKE 'A%' OR nom LIKE 'B%';
    
  • Q (OR): Sélectionnez tous les produits de la marque "Sony" ou de la marque "Samsung."
    SELECT* FROM produits WHERE marque = 'Sony' OR marque = 'Samsung';
    
  • Q (OR): Sélectionnez tous les clients dont le nom commence par "M" ou qui vivent à "Chicago" ou "San Francisco."
    SELECT* FROM clients WHERE nom LIKE 'M%' OR ville = 'Chicago' OR ville = 'San Francisco';
    
  • Q (OR avec DISTINCT): Sélectionnez toutes les marques distinctes de produits vendus à un client spécifique (par exemple, client avec l'ID 1) dont le prix de vente est inférieur à 100.
    SELECTDISTINCT p.marque
    FROM produits p
    JOIN ventes v ON p.id = v.idProduit
    WHERE v.idClient = 1 OR v.prixVente < 100;
    
  • Q (OR avec DISTINCT): Sélectionnez tous les clients dont le nom commence par "J" ou "K" et qui ont effectué des achats pour un montant total supérieur à 500 (utilisation de DISTINCT pour éviter les doublons).
    SELECTDISTINCT c.nom
    FROM clients c
    JOIN ventes v ON c.id = v.idClient
    GROUP BY c.nom
    HAVING SUM(v.prixVente * QuantiteVendue) > 500;
    
  • Q (OR avec DISTINCT): Sélectionnez toutes les marques distinctes de produits vendus à un client spécifique (par exemple, client avec l'ID 2) dont la date de vente est postérieure au 1er juin 2023.
    SELECTDISTINCT p.marque
    FROM produits p
    JOIN ventes v ON p.id = v.idProduit
    WHERE v.idClient = 2 OR v.dateVente > '2023-06-01';
    
  • Q (OR avec DISTINCT): Sélectionnez tous les clients dont le nom commence par "S" ou "T" et qui ont effectué des achats dans deux catégories distinctes de produits (utilisation de DISTINCT pour éviter les doublons).
    SELECTDISTINCT c.nom
    FROM clients c
    JOIN ventes v ON c.id = v.idClient
    JOIN produits p ON v.idProduit = p.id
    WHERE (p.categorie = 'Électronique' OR p.categorie = 'Vêtements')
    GROUP BY c.nom
    HAVING COUNT(DISTINCT p.categorie) = 2;
    
  • Q (OR 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" ou "Vêtements" et après le 1er septembre 2023.
    SELECTDISTINCT 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' OR p.categorie = 'Vêtements') AND v.dateVente > '2023-09-01'
    GROUP BY c.ville
    HAVING SUM(v.prixVente * QuantiteVendue) > 500;
    
  • Q (OR avec DISTINCT): Sélectionnez toutes les villes distinctes des clients qui ont effectué des achats pour un montant total supérieur à 1000 ou dont au moins un achat a été effectué avant le 1er décembre 2023 (utilisation de DISTINCT pour éviter les doublons).
    SELECTDISTINCT c.ville
    FROM clients c
    JOIN ventes v ON c.id = v.idClient
    WHERE (SUM(v.prixVente * QuantiteVendue) > 1000) OR (v.dateVente < '2023-12-01')
    GROUP BY c.ville;