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

Langage SQL Discussion :

Etrange reaction d'un base sqllite


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Points : 152
    Points
    152
    Par défaut Etrange reaction d'un base sqllite
    Bonjour

    Etrange curiosite avec une base sqllite
    une base de 30 enregistrements

    La requete me renvoi tout naturellement toutes les données de table.

    par contre me retourne 2 enregistrement pourquelle le champ commentaire est null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from  fic_out
    where commentaire = commentaire ;
    il se comporte comme avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from  fic_out 
    where commentaire is not null;
    cela semble plustot illogique non, qu'en pensez-vous?


  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Non, c'est parfaitement logique, NULL n'est égale à rien pas même à lui même.
    Donc, en cas de commentaire NULL, commentaire = commentaire ne ramène pas les commentaires NULL.

    C'est le même comportement sur Oracle ou sur les autres SGBD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SQL> with t as (
    select 1 as c, 'test' as commentaire from dual union all
    select 2 as c, null as commentaire from dual
    )
    select * from t
    where commentaire = commentaire;
     
             C COMM
    ---------- ----
             1 test
     
    SQL>
    Pour NULL il faut utiliser IS NULL et IS NOT NULL.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 565
    Points
    52 565
    Billets dans le blog
    5
    Par défaut
    NULL n'est pas une valeur !!! C'est un symbole maquant l'absence de valeur; il n'est comparable à rien.....

    Prenons un exemple parlant donné par mon ami Rudi Bruchez :

    Quels sont les souvenir en communs de deux amnésiques ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Créer physiquement une base SQLLite
    Par Delphi-ne dans le forum SQLite
    Réponses: 4
    Dernier message: 06/10/2018, 12h55
  2. Base de données SqlLite
    Par Aya159 dans le forum Android
    Réponses: 3
    Dernier message: 22/12/2010, 09h19
  3. chemin de la base sqllite apres création
    Par Jcpan dans le forum Android
    Réponses: 2
    Dernier message: 13/10/2010, 16h21
  4. proteger une base de données SqlLite
    Par MonPc dans le forum SQLite
    Réponses: 3
    Dernier message: 01/03/2010, 18h11
  5. Bug etrange, reaction de IE6 différente avec mon site en local ou en ligne
    Par maxfive7 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/08/2007, 01h02

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