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 :

Fonction decode


Sujet :

Oracle

  1. #1
    nad
    nad est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 35
    Points
    35
    Par défaut Fonction decode
    Bonjour,
    Je travaille sur une application existante et dans une des requêtes je trouve un truc de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decode ('HT', 'HT',0,'TTC',SUM (champs))
    Je ne comprend pas à quoi cela sert :
    ça renvoie toujours 0 non ???

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Salut, pou rdecode, tu trouveras une explication ici.

    Pour moi, je lis ça comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Si 'HT' = 'HT 
    Alors 0;
     
    Si 'HT' = 'TTC'
    Alors sum(champs)
    A mon avis, il y a une erreur, la personne a voulu ecrire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decode (type_montant, 'HT',0,'TTC',SUM (champs))
    Enfin, difficile de savoir.
    Bon courage
    a+

  3. #3
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Decode() marche par pairs

    decode ('HT', 'HT',0,'TTC',SUM (champs))

    ici l'on pourrait lire : dans le champs HT si la valeur est 'HT' alors -> 0, si la valeur est 'TTC' alors sum(champs)
    en fin de pairs, on peut également trouver une valeur par défaut si aucune des pairs précédentes ne correspond.

    Avec l'indentation de l'exemple suivant, on comprend mieux le mécanisme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT product_id,
           DECODE (warehouse_id, 1, 'Southlake', 
                                 2, 'San Francisco', 
                                 3, 'New Jersey', 
                                 4, 'Seattle',
                                    'Non-domestic') 
           "Location of inventory" FROM inventories
           WHERE product_id < 1775;

  4. #4
    nad
    nad est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    Je le comprend comme toi, c'est bien pour cela que ça m'intrigue...Je ne pense que cela soit une erreur puisque c'est repeté plusieurs fois...

  5. #5
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    As-tu un champ de ta table qui s'appelle HT ?
    Dans ce cas, (SheikYerbouti pourra sûrement mieux répondre que moi), faut-il enlever les quotes autour du 1° HT ou cela peut-il marcher comme ça ?
    a+

  6. #6
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Effectivement le premier arguement devrait être un nom de champ.
    le fait que vous obteniez systématiquement 0 est donc logique.

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut Re: Fonction decode
    Citation Envoyé par nad
    Bonjour,
    Je travaille sur une application existante et dans une des requêtes je trouve un truc de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decode ('HT', 'HT',0,'TTC',SUM (champs))
    Je ne comprend pas à quoi cela sert :
    ça renvoie toujours 0 non ???
    sûrement un code dynamiquement généré par un programmeur java de 3e classe...

  8. #8
    nad
    nad est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 35
    Points
    35
    Par défaut Re: Fonction decode
    Citation Envoyé par laurentschneider
    sûrement un code dynamiquement généré par un programmeur java de 3e classe...
    Je ne sais pas si c'était un développeur de 3ème classe mais effectivement c'est un code généré dynamiquement.

    Merci pour votre aide. J'avais bien compris la fonction decode 8) et c'est bien la requete qui est bizarre

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

Discussions similaires

  1. [Report 6i] requete avec fonction decode
    Par Herveg dans le forum SQL
    Réponses: 1
    Dernier message: 05/10/2007, 16h18
  2. équivalent DB2 à la fonction DECODE d'ORACLE
    Par jdlille dans le forum DB2
    Réponses: 2
    Dernier message: 29/03/2007, 12h23
  3. [parametres]JAVA fonction decode
    Par Yanos dans le forum Langage
    Réponses: 3
    Dernier message: 21/06/2006, 15h56
  4. [sql2005] cmdsql fonction DECODE
    Par delanfranchi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/06/2006, 13h38
  5. Problème fonction decode()
    Par chti_juanito dans le forum Administration
    Réponses: 11
    Dernier message: 15/02/2006, 21h00

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