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 Oracle Discussion :

Requête DECODE encadrement


Sujet :

SQL Oracle

  1. #1
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 057
    Points : 1 532
    Points
    1 532
    Par défaut Requête DECODE encadrement
    Bonjour,

    Je suis un peu perdu et j'ai pas l'habitude d'utiiser cette function.
    J'ai une variable enseignement en mois que je dois transformer en année
    en fonction de la valeur

    durée < 18 -> 1 an
    durée 17 < d < 30 -> 2 ans
    durée 29 < d alors 3 ans

    bref j'essaye avec decode sauf que les exemples sur des encadrements fonctionnent avecSELECT supplier_id, decode(trunc ((supplier_id - 1) / 10), 0, 'category 1',
    1, 'category 2',
    2, 'category 3',

    'unknown') result FROM suppliers;

    Exemple oracle.

    Mon problème c'est que l'écart entre les valeurs n'est pas régulier de 10 en 10.

    je cherche un moyen de contourner ce pb.

    olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Vous pouvez faire un CASE qui est un decode normatif et plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    select level,
           case
             when level < 18              then 1
             when level between 18 and 29 then 2
             when level > 29              then 3
           end as result
      from dual
    connect by level <= 32;
     
    LEVEL	RESULT
    1	1
    2	1
    3	1
    4	1
    5	1
    6	1
    7	1
    8	1
    9	1
    10	1
    11	1
    12	1
    13	1
    14	1
    15	1
    16	1
    17	1
    18	2
    19	2
    20	2
    21	2
    22	2
    23	2
    24	2
    25	2
    26	2
    27	2
    28	2
    29	2
    30	3
    31	3
    32	3

  3. #3
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 057
    Points : 1 532
    Points
    1 532
    Par défaut Bluffé je suis
    Bonjour,

    Je viens de tester et c'est parfait.
    Grand merci au groupe Oracle.

    olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

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

Discussions similaires

  1. Requête SQL avec "decode"
    Par Monfy29 dans le forum SQL
    Réponses: 3
    Dernier message: 12/08/2008, 13h04
  2. Optimisation de requête decode not in decode
    Par Kiroukool dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/09/2007, 12h10
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 19h38
  4. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 15h51
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 16h26

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