- Catégories :
[ NOT ] IN¶
Teste si son argument est ou n’est pas l’un des membres d’une liste explicite ou le résultat d’une sous-requête.
Note
Sous la forme de sous-requête, IN est équivalent à = ANY
et NOT IN est équivalent à <> ALL
.
Syntaxe¶
<value> [ NOT ] IN ( <value1> , <value2> , ... )
<value> [ NOT ] IN ( ( <value1> , <value2> , ... ) , ( <value3> , <value4> , ... ) )
<value> [ NOT ] IN ( <subquery> )
Notes sur l’utilisation¶
Comme dans la plupart des contextes, NULL n’est pas égal à NULL. Si <valeur> est NULL, la valeur renvoyée par la fonction est NULL, que la liste ou la sous-requête contienne ou non NULL.
Détails du classement¶
Arguments with collation specifications are currently not supported.
Exemples¶
Ces exemples montrent comment utiliser IN
avec des littéraux.
SELECT CASE WHEN 1 IN (1, 2, 3) THEN 'true' ELSE 'false' END AS RESULT; +--------+ | RESULT | |--------| | true | +--------+SELECT CASE WHEN 'a' NOT IN (SELECT column1 FROM VALUES ('b'), ('c'), ('d')) THEN 'true' ELSE 'false' END AS RESULT; +--------+ | RESULT | |--------| | true | +--------+
Cet exemple montre comment utiliser IN
avec une table :
CREATE TABLE MyTable (col_1 INTEGER, col_2 INTEGER, col_3 INTEGER); INSERT INTO MyTable (col_1, col_2, col_3) VALUES (1, 1, 1), (1, 2, 3), (4, 5, NULL);SELECT * FROM MYTABLE WHERE (col_1, col_2, col_3) IN ((1,2,3),(4,5,6)); +-------+-------+-------+ | COL_1 | COL_2 | COL_3 | |-------+-------+-------| | 1 | 2 | 3 | +-------+-------+-------+Rappelez-vous que NULL! = NULL. Ce qui suit montre que « (4, 5, NULL) » ne correspond pas en soi, car NULL ne correspond pas en soi :
SELECT * FROM MYTABLE WHERE (col_1, col_2, col_3) IN ((9, 8, 7), (4, 5, NULL)); +-------+-------+-------+ | COL_1 | COL_2 | COL_3 | |-------+-------+-------| +-------+-------+-------+
Voici un exemple simple d’utilisation de NOT IN
:
SELECT * FROM MYTABLE WHERE (col_1, col_2, col_3) NOT IN ((1, 1, 1), (2, 2, 2)); +-------+-------+-------+ | COL_1 | COL_2 | COL_3 | |-------+-------+-------| | 1 | 2 | 3 | | 4 | 5 | NULL | +-------+-------+-------+