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 Procédural MySQL Discussion :

Comment éviter un résultat NULL ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 19
    Par défaut Comment éviter un résultat NULL ?
    Bonjour,

    Je fais une requête du style :
    select val1-val2 as 'val' from table

    Mais si jamais val1=NULL ou val2=NULL, j'obtiens alors NULL pour la variable val, alors que je souhaiterai avoir :
    - si val1=NULL, alors val=-val2
    - si val2=NULL, alors val=val1

    Est-ce possible à faire ?

    Merci d'avance.

    Delphine

  2. #2
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Par défaut
    Tu peux utiliser CASE WHEN pour tester tes variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select 
    CASE 
    WHEN VAL1 IS NULL THEN -VAL2 
    WHEN VAL2 IS NULL THEN VAL1
    ELSE VALEUR_PAR_DEFAUT
    END
    FROM TA_TABLE

  3. #3
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Ou bien l'utilisation des if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT 
    IF(val_1 IS NULL, val_2, val_1),
    IF(val_2 IS NULL, val_1, val_2)
    FROM TA_TABLE

  4. #4
    Membre Expert
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Par défaut
    Bonjour,

    Go pour le troll, je propose la fonction IFNULL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IFNULL(VAL1,0)-IFNULL(VAL2,0) FROM TA_TABLE

  5. #5
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Citation Envoyé par Adjanakis Voir le message
    Bonjour,

    Go pour le troll, je propose la fonction IFNULL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IFNULL(VAL1,0)-IFNULL(VAL2,0) FROM TA_TABLE

    +1

  6. #6
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 19
    Par défaut
    Merci beaucoup pour vos réponses !
    J'ai adopté le IFNULL qui est plus concis.

    Delphine

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/01/2015, 14h24
  2. Comment éviter la valeur Null ?
    Par mpascolo dans le forum Access
    Réponses: 2
    Dernier message: 23/08/2006, 15h11
  3. [TEdit] Comment éviter le bip ?
    Par portu dans le forum Composants VCL
    Réponses: 4
    Dernier message: 01/10/2004, 12h01
  4. Réponses: 4
    Dernier message: 28/07/2004, 10h42
  5. [eclipse 2.1][compilation] Comment éviter...
    Par ftrifiro dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 29/06/2004, 16h16

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