おはようございます、私の最愛のSQLウィザードとソーサラー、
3 つのテーブルにまたがる 3 列のデータを代用したいと考えています。現在、NVL 関数を使用していますが、これは 2 つの列に制限されています。
以下に例を示します。
    SELECT ccc.case_id,
           NVL (ccvl.descr, ccc.char)) char_val
               FROM case_char ccc, char_value ccvl, lookup_value lval1
              WHERE   
                    ccvl.descr(+) = ccc.value
                    AND ccc.value = lval1.descr (+)
                    AND ccc.case_id IN ('123'))
     case_char table
     case_id|char |value
       123  |email| work_email
       124  |issue| tim_ 
     char_value table
     char  | descr
work_email | complaint mail
    tim_   | timeliness
    lookup_value table
    descr  | descrlong
 work_email| xxx@blah.com
基本的に私がやろうとしているのは、case_char.value と lookup_value.descr の一致が存在する場合はそれを表示し、そうでない場合は case_char.value と char_value.char との一致が存在する場合はそれを表示することです。
char_value テーブルから 'issue' の説明を返そうとしていますが、'email' については lookup_value テーブルから descrlong を返したいです (すべて同じエイリアス 'char_val' の下にあります)。
したがって、私の質問は、同じエイリアスの下に表示することを念頭に置いて、これをどのように達成するかです。
さらに情報が必要な場合はお知らせください。
みんなありがとう