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 :

Valeurs NULL non retournés


Sujet :

Développement SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Valeurs NULL non retournés
    Bonjour à tous,

    J'ai une requête qui sélectionne un des machines dans une BDD SQL-Server.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
    	DISTINCT MACHINE_ID, Cost_Center FROM 
            ITEMS
     
    WHERE
     
    Company = 'CPH ' AND Status = 2
     
    AND Tier_3 IN ('Desktop','Laptop')
     
    AND MACHINE_Role NOT IN ('Kiosk')

    La requête exclu les machines quand MACHINE_Role = Kiosk, ce qui est le but, mais aussi celles ou
    MACHINE_Role est NULL!

    J'ai passé des heures à essayer de trouver la raison sans résultat

    J'en appelle à votre savoir


    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    C'est en effet un peu déroutant pour qui n'a pas plusieurs siècles d'habitude de SQL ...

    Bon, je vais essayer d'être clair :

    NULL n'est pas une valeur ... mais l'indication de l'absence de renseignement.

    petit exemple sous forme de dialogue :
    question : quel est la température extérieure ?
    réponse : je ne sais pas ...
    La valeur du champ "réponse" est ici NULL. Pourtant la température extérieure a bien une valeur !!!

    quand tu écris : MACHINE_Role NOT IN ('Kiosk')
    SQL Server va soigneusement comparer la valeur qu'il trouve dans le champ MACHINE_Role avec la valeur 'Kiosk'.
    Cependant, il ne peut pas comparer une valeur inconnue avec 'Kiosk'.

    Voilà pour l'aspect conceptuel

    Dans le pratico-pratique, si tu veux aussi avoir les enregistrements avec MACHINE_Role à NULL il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
    	DISTINCT MACHINE_ID, Cost_Center FROM 
            ITEMS
     
    WHERE
     
    Company = 'CPH ' AND STATUS = 2
     
    AND Tier_3 IN ('Desktop','Laptop')
     
    AND (MACHINE_Role NOT IN ('Kiosk') OR MACHINE_Role IS NULL)
    J'aurai plutôt écrit AND (MACHINE_Role <>'Kiosk' OR MACHINE_Role IS NULL)
    Le "NOT IN" étant réservé à l'exploitation d'une liste et ralenti la machine
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Merci infiniment ton explication m'a épargne beaucoup de migraine!

    Mais c'est vrai que c'est déroutant

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

Discussions similaires

  1. LEFT JOIN qui retourne des valeurs NULL et non NULL
    Par devman2011 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/08/2012, 18h05
  2. Garder valeur nulle dans combo non selected
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 23/09/2008, 18h58
  3. retourner une valeur à null ou 0
    Par pimpmyride dans le forum Requêtes
    Réponses: 6
    Dernier message: 06/06/2007, 17h18
  4. [Servlet] pb multipart/form-data retourne valeur null
    Par Doumeasse38 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/05/2006, 08h46
  5. Valeur null retournée par un champ TAggregate
    Par tarbala dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/04/2006, 20h56

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