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 :

Retourner une valeur même en absence d'enregistrement


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 209
    Points : 95
    Points
    95
    Par défaut Retourner une valeur même en absence d'enregistrement
    Bonjour,

    Ma question peut paraitre stupide mais je n'ai pas d'autre solution, ne pouvant utiliser PL/SQL dans le produit. En fait il s'agirait de retourner une et une seule valeur même si elle n'existe pas dans le résultat dans la requête.

    ex: Select nvl('valeur_a','valeur_b')
    from table
    where condition=ma_condition.
    Si ma condition ne retourne rien, je souhaiterais quand même retourner la valeur 'valeur_b' bien que le nvl ne fonctionnant pas dans ce cas de figure.
    Avec le PL/SQL, j'aurais la possibilité de mettre 'IfNull variable set valeur='valeur_b' or les contraintes du produit m'obligent à utiliser SQL. Donc y aurait-t'il un moyen de retourner quand même quelque chose en "dur" ('valeur_b') malgré tout.

    D'avance merci.

    Thomas

  2. #2
    Membre averti Avatar de icsor
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mai 2008
    Messages : 258
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    je ne suis pas sur d'avoir compris la problématique.

    Si la requête renvoie au maximum une ligne, vous pouvez utiliser une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select nvl(select 'valeur_a' from table where condition=ma_condition),'valeur_b') from dual;
    Si la requête renvoie plusieurs lignes, vous pouvez utiliser une requête du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select nvl('valeur_a','valeur_b')
    from table 
    where condition=ma_condition
    UNION ALL
    select 'valeur_b' from (select count(1) as nf from table 
    where condition=ma_condition
    ) where nb = 0

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 209
    Points : 95
    Points
    95
    Par défaut
    Bonjour et merci de ta réponse,

    ça fonctionne bien: la requête me retourne bien une valeur fixe même si il n'y a pas la valeur que je recherche dans la table. Je ne connaissais pas, maintenant je connais même si j'avais espéré quelque chose de plus simple de la part d'oracle. Tant mieux, l'essentiel est fait.

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

Discussions similaires

  1. [vb.net] retourner une valeur dans l'evenement click
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/05/2005, 13h06
  2. [VB.Net]Procédure Stocké retournant une valeur
    Par waldo2188 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/05/2005, 12h56
  3. Réponses: 7
    Dernier message: 15/03/2005, 14h44
  4. fonction retournant une valeur
    Par ryan dans le forum ASP
    Réponses: 4
    Dernier message: 06/09/2004, 17h45
  5. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37

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