Indique si une valeur existe dans un ensemble de valeurs.
valeur [NOT] IN (ensemble_de_valeurs)
Description
Utilisez le prédicat de comparaison IN pour filtrer une table en fonction de l'existence d'une valeur de colonne dans un ensemble spécifié de valeurs de comparaison. L'ensemble de valeurs de comparaison peut être soit statique en utilisant une liste de constantes séparées par virgules, soit dynamique en utilisant l'ensemble résultant d'une sous-requête.
La valeur à comparer avec l'ensemble de valeurs peut être n'importe quelle ou une combinaison de : valeurs de colonne, valeurs constantes ou valeurs calculées.
L'ensemble de comparaison peut être une liste de valeurs constantes séparées par des virgules.
SELECT C.société, C.état
FROM client C
WHERE (C.état IN ("CA", "HI"))
L'ensemble de comparaison peut aussi être l'ensemble résultant d'une sous-requête. La sous-requête peut renvoyer plusieurs lignes, mais ne doit renvoyer qu'une seule colonne pour comparaison.
SELECT C.société, C.état
FROM client C
WHERE (C.état IN
(SELECT R.état
FROM régions R
WHERE (R.région = "Pacifique")))
Utilisez NOT pour renvoyer la condition inverse d'une comparaison IN.
IN peut être utilisé avec tous les types de données non BLOB, mais toutes les valeurs comparées doivent être du même type de données ou de types de données compatibles. Si une valeur est d'un type de données incompatible, convertissez cette valeur au moyen de la fonction CAST en un type de données compatible.
Conseil : IN est utile pour le filtrage avant extraction de lignes ayant des valeurs non contiguës. Pour le filtrage avant extraction de lignes ayant des valeurs contiguës à l'intérieur d'une plage spécifiée, utilisez le prédicat BETWEEN.