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

Développement SQL Server Discussion :

IN , NOT IN et NULL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut IN , NOT IN et NULL
    Bonjour,

    J'ai un problème en sql (sous sql server 2003), voici mes 3 requètes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    SELECT  champ1 
    FROM table1
    WHERE id = 203;
     
    ==> 9 resultats
     
    1
    1
    NULL
    3
    10
    1
    NULL
    3
    1
     
    -------------------------------------
     
    SELECT champ1   
    FROM table1
    WHERE id  = 203
    AND champ1 NOT IN ('1','3','9','10');
     
    ==> 0 resultats
     
    --------------------------------------
     
    SELECT champ1   
    FROM table1
    WHERE id  = 203
    AND champ1  IN ('1','3','9','10');
     
    ==> 7 resultats
     
    1
    1
    3
    10
    1
    3
    1
     
    ----------------------------------
    Si j'additionne 7 et 0 j'ai pas 9 ... il semble que mes 2 enregistrement a NULL aient "sauté".
    Est ce que quelqu'un peut me fournir une explication censée à ces résultats ? Ou est ce un bug sql server, ou j'ai mal compris le IN, le NOT IN ou le NULL.

    Voilou

  2. #2
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    Tu as mal compris le NULL.
    Le NULL n'étant rien, il n'est ni repris dans le IN ni dans le NOT IN.

    J'ai pas le lien ainsi et je suis sur que tu trouveras plus d'information à ce sujet dans les petits papiers de SQLPro.


    EDIT : voici le lien : http://sqlpro.developpez.com/cours/null/

  3. #3
    Invité
    Invité(e)
    Par défaut
    D'accord merci, vais essayer d'y méditer, mais bon ce genre de truc ça peut faire faire de la m###e.

  4. #4
    Membre Expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Par défaut
    C'est comme tout, ca dépend comment on l'utilise... Si on l'utilise bien, ca va

Discussions similaires

  1. Exception étrange : This parser does not support specification "null" version "null"
    Par laurent_m dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 02/11/2010, 16h20
  2. [AC-2000] Not In et Null
    Par B-CAB dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/06/2010, 09h17
  3. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  4. Réponses: 8
    Dernier message: 24/07/2003, 10h45
  5. "ALTERER" une col. NULL en NOT NULL - Int
    Par Gandalf24 dans le forum SQL
    Réponses: 2
    Dernier message: 28/12/2002, 00h07

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