早上好,我心爱的 sql 巫师,
我想替换 3 个表中的 3 列数据。目前我正在使用 NVL 功能,但仅限于两列。
请参阅下面的示例:
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 表中返回“问题”的描述,但对于“电子邮件”,我想从 lookup_value 表中返回 descrlong(都在同一个别名“char_val”下)。
所以我的问题是,我如何实现这一点,记住我希望它们出现在同一个别名下。
如果您需要任何进一步的信息,请告诉我。
多谢你们