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

Oracle Discussion :

[PL/SQL] CASE xxx WHEN NULL


Sujet :

Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 191
    Points
    191
    Par défaut [PL/SQL] CASE xxx WHEN NULL
    Bonjour

    J'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    IF p IS NULL THEN
      htp.p('null');
    ELSE
      htp.p('non null');
    END IF
     
    htp.br;
     
    CASE p WHEN
    NULL THEN htp.p('null');
    ELSE THEN htp.p('non null');
    END CASE;
    A l'execution, bizzare, le test avec IF detecte bien une valeur nulle, mais pas le test avec CASE (??). Ou que j'ai pas bien compris ?

    L.

  2. #2
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Tu peux faire comme ca sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CASE 
       WHEN p IS NULL THEN htp.p('null'); 
       ELSE THEN htp.p('non null'); 
    END;

    Laly.

  3. #3
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    Réponse d'un débutant:

    Dans le IF, vous avez IS NULL comme comparaison tandis que dans le CASE soit doit être l'opérateur de comparaison '='.

    Pseudo-code du CASE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IF  p = NULL THEN 
     htp.p('null'); 
    ELSE
      htp.p('non null'); 
    END IF;
    @+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 191
    Points
    191
    Par défaut
    [couic]

    Pour ceux qui l'ont lu, j'ai raconté des bétises , mode edit on.

    Effectivement Laly, ca convient parfaitement ;-)

    Merci bcp
    L.

  5. #5
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Bien vu pour l'explication Jowo !


    Laly.

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par jowo
    Dans le IF, vous avez IS NULL comme comparaison tandis que dans le CASE soit doit être l'opérateur de comparaison '='.
    attention =NULL est TOUJOURS faux... c'est bien IS NULL qu'il faut tester pour savoir si une colonne est vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SQL>select sysdate from dual where null=null;
     
    aucune ligne sélectionnée

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

Discussions similaires

  1. Création booleén : SQL Case when
    Par avyperez dans le forum SAS Base
    Réponses: 14
    Dernier message: 22/11/2013, 16h25
  2. CASE <champ> WHEN NULL ?
    Par guitoux1 dans le forum Développement
    Réponses: 4
    Dernier message: 28/01/2009, 11h50
  3. SQL Case When
    Par mechatikhaled dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/01/2009, 16h57
  4. Sql CASE/WHEN avec HyperFile
    Par iniaina dans le forum HyperFileSQL
    Réponses: 5
    Dernier message: 21/11/2008, 10h37
  5. Transact SQL : case when
    Par dianouch dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/07/2006, 12h12

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