Prédicat IN

Navigation:  Les modules métier > Les règles de production > les requêtes SQL > Prédicats >

Prédicat IN

Previous pageReturn to chapter overviewNext page

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.