Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
tout d'abord merci pour ta réponse.
donc si j'ai bien compris NULL n'est pas rien ,mais une valeur inconnu.... or d'après certains sites NULL est bien l'abscence de valeur (http://www.linuxtopia.org/online_books/ … 32_001.htm)
De plus, si un fait une reqete SELECT * FROM t2 WHERE champ2 <> NULL cette requête marche bien.... DONC si ma sous requête me retourne 2 valeurs, NULL et Test, en quoi le NOT IN ne fonctionne pas .... Ne possède-t-il pas un comportement tel que le where ?
Je te remercie pour ton aide, car je tiens vraiment à comprendre ce problème
Finality
Bonjour tout le monde,
je viens vous voir car je viens de rencontrer un problème dont je n'arrive pas à expliquer le pourquoi du comment.
Je vais vous faire un descriptif de l'état initial :
je possède deux tables, t1 et t2, comprenant chacune 2 champs de type varchar, ce qui donne :
t1 : champ1, champ2
t2 : champ1, champ2
t2.champ2 peux être NULL
Lorsque je tente cette requête
SELECT * FROM t1 WHERE t1.champ1 NOT IN (SELECT t2.champ2 FROM t2);
Or, si ma sous requête me retourne des résultats NULL, le NOT IN ne fonctionne plus : t1.champ1 n'est pas dans la liste retournée par ma sous requête, mais il n'est pas retournée par la requête globale....
Je vous donne quelques requêtes pour pouvoir essayer :
CREATE TABLE t1(
champ1 character varying(50),
champ2 character varying(50)
)CREATE TABLE t2(
champ1 character varying(50),
champ2 character varying(50)
)INSERT INTO t1(champ1, champ2) VALUES('Non', 'Test');
INSERT INTO t2(champ1, champ2) VALUES('Test', 'Test');
INSERT INTO t2(champ1) VALUES('Test');
Je vous remercie d'avance pour votre éclaircicement
Cordialement
Finality
Pages : 1