IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Null value et select not null


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Null value et select not null
    Qui peux m'expliquer le comportement suivant :

    La requête ci-dessous renvoie "No rows returned" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from affaire
    where id_affaire not in (select id_affaire from dan_detail_0cgi)
    Alors que celle-ci fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select * from affaire aff
    where not exists (select 1 
                      from dan_detail_0cgi d 
                      where d.id_affaire=aff.id_affaire
                     )
    Dernière modification par al1_24 ; 17/02/2010 à 10h53. Motif: Balises [code]

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id_affaire from dan_detail_0cgi
    Ramène un nul parmi les autres valeurs.

  3. #3
    Membre éclairé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Par défaut
    il nous faut donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * from affaire
    where id_affaire not in (select id_affaire 
                                   from dan_detail_0cgi
                                   Where id_affaire is not null)

  4. #4
    Invité
    Invité(e)
    Par défaut
    oui est alors ?? un null le not in devrait marcher non ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select * from affaire
    where id_affaire not in (null, 1)
    -> now rows pourquoi ?

  6. #6
    Membre éclairé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Par défaut
    NULL ne peut pas être inclu dans un NOT IN...

    extrait de la MSDN
    Toute valeur Null retournée par subquery ou expression qui est comparée à test_expression en utilisant IN ou NOT IN retourne UNKNOWN. L'utilisation de valeurs Null avec IN ou NOT IN peut produire des résultats inattendus
    Ce qui veut dire que le moindre NULL rendra incohérente l'expression testée dans la sous-requete, ou la liste du NOT IN

    SQLPro a fait un papier sur la gestion des Null il me semble

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    SELECT * FROM affaire
    WHERE id_affaire NOT IN (SELECT id_affaire FROM dan_detail_0cgi
    where id_affaire is not null)

  8. #8
    Membre éclairé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Par défaut
    Citation Envoyé par laurentschneider Voir le message
    SELECT * FROM affaire
    WHERE id_affaire NOT IN (SELECT id_affaire FROM dan_detail_0cgi
    where id_affaire is not null)
    La réponse avait été donnée quelques poste plus haut

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    désolé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Null value dans une list box not required
    Par Fabii dans le forum BIRT
    Réponses: 0
    Dernier message: 21/09/2011, 09h49
  2. Réponses: 5
    Dernier message: 30/12/2010, 11h46
  3. Réponses: 6
    Dernier message: 29/11/2010, 16h09
  4. [MySQL] SELECT et IS NOT NULL
    Par voyageurdumonde dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/11/2010, 19h07
  5. JPA + Hibernate : faire un select avec une null value
    Par bubulemaster dans le forum Persistance des données
    Réponses: 2
    Dernier message: 17/06/2010, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo