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 :

CASE WHEN + jointure


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Par défaut CASE WHEN + jointure
    Bonjour,

    est-il possible de faire une requete avec jointure qui viendrait du from de la requete principale () dans un when, du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT
    	CASE (	SELECT * FROM TABLE2 B WHERE b.id = a.id)
    	WHEN "AAA" THEN "BLABLA"
    		ELSE 0
    	END 
    FROM
    	TABLE1 A
    Merci de votre aide,
    Sai

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 76
    Par défaut
    Bonjour,

    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
    with TABLE1 as (
    select 1 as id,'yop' as lib FROM dual UNION ALL
    select 2 as id,'yup' as lib FROM dual UNION ALL
    select 2 as id,'yap' as lib FROM dual UNION ALL
    select 4 as id,'yip' as lib FROM dual
    ),
    TABLE2 as (
    select 1 as id, 'AAA' as libelle FROM dual UNION ALL
    select 2 as id, 'BBB' as libelle FROM dual UNION ALL
    select 3 as id, 'CCC' as libelle FROM dual UNION ALL
    select 1 as id, 'BBB' as libelle FROM dual
    ),
    TABLE2DECODE as (
    select id,
    CASE
        WHEN libelle='AAA' THEN 'aaa'
        WHEN libelle='BBB' THEN 'bbb'
        WHEN libelle='CCC' THEN 'ccc'
        WHEN libelle='DDD' THEN 'ddd'
        ELSE 'void'
    	END as lib
    from TABLE2
    )
     
    select T2.lib
    from TABLE2DECODE T2 JOIN TABLE1 T1 ON T1.id=T2.id
    Peut être cela peut vous aider.

    En fait pour vous repondre il faudrait savoir ce que vous voulez vraiment par * dans "SELECT * FROM TABLE2 B WHERE B.id = A.id"

    A+

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/02/2008, 12h42
  2. case/when avec plusieurs valeurs pour le then
    Par Neo41 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2005, 15h58
  3. Pb avec case when !
    Par Brice Yao dans le forum Langage SQL
    Réponses: 11
    Dernier message: 05/08/2005, 08h20
  4. Structure CASE WHEN en Interbase
    Par tchaman dans le forum InterBase
    Réponses: 8
    Dernier message: 13/12/2004, 16h18
  5. [SQL] performances Decode ou Case when ?
    Par Yorglaa dans le forum Oracle
    Réponses: 8
    Dernier message: 01/10/2004, 15h50

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