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 :

if ou when ou autres ?


Sujet :

Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 66
    Par défaut if ou when ou autres ?
    Bonjour,

    je souhaite conditionner le choix d'une colonne (la requête suivante ne fonctionne pas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select colonne1,
    if colonne1 = 0
        then colonne2;
        else colonne3;
    end if; 
    from maTable
    Sous MySQL, il est possible d'utiliser la commande WHEN
    En PL/SQL, la syntaxe avec IF que j'ai utilisé devrait fonctionner

    Comment puis-je faire cela avec Oracle sans créer une procédure stockée ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 66
    Par défaut

    merci moi !

    Il faut utiliser la fonction DECODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT colonne1,
    DECODE(colonne1,0,colonne3,colonne2)
    FROM maTable

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    CASE ou DECODE

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 66
    Par défaut
    merci orafrance

    Effectivement CASE fonctionne aussi très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT colonne1,
    CASE colonne1 WHEN 0 THEN colonne3 ELSE colonne2 END
    FROM maTable

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

Discussions similaires

  1. Autre façon d'écrire COUNT(CASE WHEN)
    Par bella125 dans le forum Requêtes
    Réponses: 12
    Dernier message: 14/05/2014, 15h26
  2. SQLLOADER: appel à une autre table dans la clause when du CTL
    Par jamesleouf dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 28/03/2011, 09h29
  3. Réponses: 2
    Dernier message: 04/06/2007, 13h53
  4. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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