Opérateur SQL IN

L’opérateur IN vous permet de spécifier plusieurs valeurs dans une clause WHERE.

L’opérateur IN accomplit le même objectif que OR. Mais IN a les avantages suivants.

  • Pour les longues listes d’options valides, la syntaxe de l’opérateur IN est beaucoup plus propre et plus facile à lire.
  • L’ordre d’évaluation est plus facile à gérer.
  • Le plus grand avantage de IN est que l’opérateur IN peut contenir une autre instruction SELECT.

Syntaxe:

SELECT nom_colonne(s) 
  FROM nom_table 
 WHERE nom_colonne [NOT] IN (valeur1, valeur2, ...);

ou:

SELECT nom_colonne(s) 
  FROM nom_table 
 WHERE nom_colonne [NOT] IN (SELECT instruction );

Base de données DB2 :

Vous trouverez ci-dessous une sélection de la table “Produit” de la base de données DB2.

ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7002Disque dur65,00201 300
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005VTTvélos1 200
7006STYLO7.451074,50
7007Lecteur CDAccessoires75,00
7008MicroAccessoires75,00

Exemple 1 : Utilisation de l’opérateur IN :

L’instruction SQL suivante sélectionne tous les produits avec la catégorie “Accessoires”, “Composants” et “Vélos”.

SELECT * 
  FROM Produit 
 WHERE Categorie IN ('Accessoires', 'Composants', 'Vélos');
Résultat:
ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7001SourisAccessoires75,00
7003ClavierAccessoires36.00331 118,00
7004RAMComposants23.5016376,00
7005Hondavélos1 200
7007Lecteur CDAccessoires75,00
7008MicroAccessoires75,00

Exemple 2 : Utilisation de l’opérateur NOT

NOT est un mot clé utilisé dans une clause WHERE pour annuler une condition.

L’instruction SQL suivante sélectionne tous les produits qui ne sont pas dans la catégorie comme “Accessoires”, “Composants” et “Vélos”.

Exemple:

SELECT * 
  FROM Product 
 WHERE Categorie NOT IN ('Accessoires', 'Composants', 'Vélos');
Résultat:
ID-ProduitNom-ProduitCategoriePrixStockValeur-Totale
7002Disque dur65,00201 300
7006STYLO7.451074,50

Exemple 3 : Utilisation de l’opérateur IN avec SELECT

L’instruction SQL suivante sélectionne tous les étudiants issus des mêmes villes que les enseignants :

Exemple:

SELECT * FROM Etudiants 
    WHERE Ville IN (SELECT Ville FROM Enseignants);