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 CASE avec SELECT imbriqué


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Requête CASE avec SELECT imbriqué
    Bonjour,

    Je souhaite faire une requête en testant la valeur d'un champ et, si la zone est vide alors je souhaite récupérer une valeur via une requete.
    Est ce possible dans un CASE ?
    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select case 
    when a.Famille = ' ' 
           THEN (
            select max(b.Famille) from  P_STAT_TRSTP b
             where a.NO_DOCUMENT = b.NO_DOCUMENT
                    )
    else a.Famille
    END  test1
     from P_STAT_TRSTP a , P_STAT_TRSTP b
    Merci de votre aide.
    PP

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Difficile de donner une réponse correcte avec si peu de détail, mais est-ce que ceci ne vous conviendrait pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select max(case a.famille
                 when ' '
                 then b.famille
                 else a.famille
               end) as famille
      from P_STAT_TRSTP a
           inner join P_STAT_TRSTP b
             on b.NO_DOCUMENT = a.NO_DOCUMENT;

  3. #3
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    il y a une différence entre les deux requêtes ;
    pperrin; une sous-requête dans un CASE est possible à condition qu'elle reçoive une et une seule valeur.
    pour cela; voici ta requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT case a.Famille
    when  ' '  THEN (SELECT max(b.Famille)
    FROM P_STAT_TRSTP b
    WHERE a.NO_DOCUMENT = b.NO_DOCUMENT
    )
    else a.Famille
    END  AS test1
    FROM P_STAT_TRSTP a



    sinon tu peux utiliser même decode


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT decode(a.Famille,' ', (SELECT max(b.Famille) 
                                                       FROM P_STAT_TRSTP b
                                                     WHERE a.NO_DOCUMENT=b.NO_DOCUMENT
                                                      )
    , a.Famille
    END  AS test1
    FROM P_STAT_TRSTP a
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

Discussions similaires

  1. Requête hql avec select imbriqué
    Par Hypnocrate dans le forum Hibernate
    Réponses: 10
    Dernier message: 24/11/2010, 18h12
  2. optimisation de requête sql avec select imbriquées
    Par yassine_le_boss dans le forum SQL
    Réponses: 6
    Dernier message: 02/11/2010, 22h12
  3. Requête avec select imbriqué
    Par Isiker dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/08/2010, 17h45
  4. [Delphi6,Access] Requête update avec select imbriqué
    Par magicstar dans le forum Débuter
    Réponses: 3
    Dernier message: 30/03/2009, 19h40
  5. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 15h05

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