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 :

Problème avec decode et date du jour


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2012
    Messages : 43
    Par défaut Problème avec decode et date du jour
    bonjour à tous,
    j'ai un champ langage et un champ jour que j'aimerais alimenter automatiquement. tel qu' on a 3 langues: francais=1,espagnol=2 et anglais=3 et il faudrait que :

    decode((ID_LANGUAGE),1,to_char(SYSDATE,'DAY') 'Lundi',2,to_char(SYSDATE,'DAY') 'Lunes',3,to_char(SYSDATE,'DAY') 'Monday')...
    et il faudrait que ca alimente pour tous les jours de la semaine.
    peut-on faire un decode d'un decode??

  2. #2
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Je ne vais pas répondre sur le decode (désolée ), mais plutôt sur ce que je ferai à votre place.

    J'utiliserai plutôt un CASE WHEN (http://docs.oracle.com/cd/E11882_01/...htm#SQLRF20037)

    Cordialement,

    Arkhena

  3. #3
    Membre chevronné
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Par défaut
    Salut,

    Je n'ai pas totalement compris ce que tu veux faire mais oui il est possible d'imbriquer plusieurs DECODE l'un dans l'autre.

    Pour le jour de la semaine je te conseil de te baser plutôt sur le numéro du jour dans la semaine que le nom :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select TO_CHAR(SYSDATE,'D') from dual
    Qui retourne 1 pour lundi , 2 pour mardi .... 7 pour dimanche

    Ensuite selon ce que tu veux faire, l'utilisation de la clause CASE pourrait faciliter la lisibilité de ta requête. A toi de mieux décrire le résultat voulu je pense

  4. #4
    Membre chevronné
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Par défaut
    Si tu cherches à alimenter la date du jour tu peux faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CASE TO_CHAR(SYSDATE,'D')
        WHEN 1 THEN DECODE(ID_LANGUAGE,1,'LUNDI',2,'LUNES',3,'MONDAY','')
        WHEN 2 THEN DECODE(ID_LANGUAGE,1,'MARDI',2,'MARTES',3,'TUESDAY','')
        WHEN 3 ....
        ...
        WHEN 7 THEN DECODE(ID_LANGUAGE,1,'DIMANCHE',2,'DOMINGO',3,'SUNDAY','')
        ELSE ''
    END

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Pour info, tu peux aussi utiliser le nls_date_language
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT 
              INITCAP(TO_CHAR(SYSDATE,'DAY', 'NLS_DATE_LANGUAGE=French')) FR,
              INITCAP(TO_CHAR(SYSDATE,'DAY', 'NLS_DATE_LANGUAGE=Spanish')) ES,
              INITCAP(TO_CHAR(SYSDATE,'DAY', 'NLS_DATE_LANGUAGE=English')) EN
    FROM dual
     
    FR	ES		EN
    Lundi   Lunes    	Monday

  6. #6
    Membre averti
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2012
    Messages : 43
    Par défaut oracle
    Merci à tous
    je tiens à préciser que je suis sur oracle...
    case when marche très bien mais il ne tourne pas sur Génio après et j'en ai besoin dans cet ETL.
    Le decode serait l'idéal...

  7. #7
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    peux tu donner la description de ta table et le résultat attendu.. parce que je vois mal l'histoire d'alimenter toute la semaine alors que tu utilises un sysdate

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

Discussions similaires

  1. Problème avec SimpleDateFormat.parse(Date)
    Par nad dans le forum Langage
    Réponses: 2
    Dernier message: 09/06/2006, 13h34
  2. problème avec la fonction date()
    Par puppusse79 dans le forum Access
    Réponses: 4
    Dernier message: 24/03/2006, 15h59
  3. [FLASH MX] Problème avec l'objet Date
    Par n_tony dans le forum Flash
    Réponses: 13
    Dernier message: 22/03/2005, 13h44
  4. Problème avec les paramètres date BDE/ODBC Oracle/XP Pro
    Par Bloon dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/10/2004, 10h09
  5. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33

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