Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/06/2007, 13h13   #1
Membre actif
 
Inscription : novembre 2004
Messages : 311
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 311
Points : 157
Points : 157
Par défaut Oracle 8 : NOT IN versus MINUS

Bonjour,

J'exécute 2 requêtes qui devraient me donner le même résultat.
Les colonnes nnm1 et code_marche_national sont en CHAR(7).

Requête 1 :
Code :
1
2
3
4
5
6
7
 
SQL> SELECT nnm1
  2    FROM saga_marche
  3   WHERE nnm1 NOT IN ( SELECT  code_marche_national
  4                                        FROM  marche );
 
aucune ligne sélectionnée
Requête 2 :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
 
 SELECT nnm1
   FROM saga_marche         
MINUS
 SELECT  code_marche_national 
   FROM  marche;
 
NNM1
-------
9988053
9988066
9988077
9988093
9999015
9999945
9999946
9999998
9999999
 
9216 ligne(s) sÚlectionnÚe(s).
Je ne comprends pas pourquoi le NOT IN ne fonctionne pas !
Avez-vous une explication ?

Merci.
davy.g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2007, 14h05   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
si la sous-requêtes retourne des valeurs NULL tu ne retourne rien puisque NULL n'est ni égale ni différent de lui-même

essaye :

Code :
1
2
3
4
SQL> SELECT nnm1
  2    FROM saga_marche
  3   WHERE NVL(nnm1,'XX') NOT IN ( SELECT  NVL(code_marche_national,'XX')
  4                                        FROM  marche );
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h27.


 
 
 
 
Partenaires

Hébergement Web