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 :

Choix d'une valeur à retourner


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut Choix d'une valeur à retourner
    Bonjour,

    J'utilise actuellement B.O. et pour certaines raisons, je dois dans une requête SQL pouvoir retourner une date X ou une date Y.

    La date X est une date "absolue" renseignée par l'utilisateur et la date Y, une date "relative" calculée à partir de la date actuelle et des informations donnés par l'utilisateur.

    Si la date "relative" est égale à la date actuelle, je veux retourner la date X, sinon je retourne la date Y.

    J'ai donc tenté de passer par des entiers (pour plus de facilité) avec x et y respectivement le nombre de jours (à virgule) entre SYSDATE et les dates X et Y.

    Je sélectionne le soit x ou y puis je recalcule la date à retourner à partir de SYSDATE.

    En résumé :
    x = SYSDATE - X
    y = SYSDATE - Y
    z = ( choix entre x et y)
    Résultat = SYSDATE - z

    Mais le problème se pose pour le choix entre x et y.
    Je dois donc choisir x si y = 0 sinon je retourne y.
    Or non seulement il n'y a pas de conditions possibles dans les choix de colonnes d'un select (je ne parle pas de la clause WHERE), mais en plus, y + x*( y = 0) n'est pas accepté par oracle.

    Je pense donc faire quelque chose comme : x - (x/(y+e))*y + y avec e un nombre décimal donc la valeur absolue est très petite.
    Ainsi si y = 0, le résultat sera x et si y != 0, le résultat sera y + (xe)/(y+e)
    or comme e étant très petit, le résultat sera à peu près y.

    Je me demandais s'il n'y avait pas une solution plus élégante ou si vous saviez comment je pourrais choisir e pour que sa valeur absolue soit la plus petite possible.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Utilisez Case ou Decode.

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Merci, Case est exactement ce qu'il me fallait

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

Discussions similaires

  1. Récupérer une valeur retournée par une url
    Par Math77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 16/03/2011, 08h14
  2. Réponses: 0
    Dernier message: 13/02/2011, 17h27
  3. Réponses: 1
    Dernier message: 13/04/2010, 10h00
  4. Condition sur le type d'une valeur retournée
    Par Andalor dans le forum Développement
    Réponses: 2
    Dernier message: 09/03/2009, 12h55
  5. choix d'une valeur dans un zone de liste deroulante
    Par Chikatilo dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/08/2008, 14h29

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