おはようございます、私の最愛の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' の下にあります)。
したがって、私の質問は、同じエイリアスの下に表示することを念頭に置いて、これをどのように達成するかです。
さらに情報が必要な場合はお知らせください。
みんなありがとう