case当某个字段为NULL时,则填充另一个表,如果不为null则填充当前表

时间:2014-11-24 17:20:19

标签: oracle

我被查询困住了...... 我在ORACLE APEX页面中有一些表格非常好,并填充表格。但是现在我想为它添加一些条件,如果某些字段等于NULL,它应该填充另一个表,如果该字段不等于null,则填充当前表。它必须是非常简单的东西,但由于我目前对SQL和PL / SQL的了解以及给出的任务的复杂性,只是无法弄清楚出了什么问题...在我的代码中所有准备好的条件很多,以及我刚丢了订单......

到目前为止,我有类似的代码:

SELECT A_ID,
B_ID,
C_ID,
D_ID, /* ETC ETC ETC*/
FROM 

(SELECT a.A_ID,

CASE
    WHEN a.B_ID IS NULL
    THEN a.B_ID
    ELSE z.B_ID,
END AS B,

/* ENOTHER CASE, ENOTHER CASE ETC. */

FROM A_TABLE a

    LEFT OUTER JOIN Z_TABLE z
    ON z.B_ID = a.B_ID
WHERE a.B_ID IS NULL
AND z.B_ID = :PAGE_ITEM_ID 
) T

LEFT OUTER JOIN Y_TABLE y
    ON y.C_ID = a.C_ID
WHERE y.C_ID = z.C_ID
) Y

INNER JOIN TABLE_C c
ON c.somefield_id = t.somefield_id

ORDER BY FIELD_NAME;

无法弄清楚错误的原因以及编写条件的顺序。如果可能的话,我希望保持相同的语法(CASE WHEN THEN),因为查询几乎完成了,除了最后一个条件之外,其他条件也很好。

0 个答案:

没有答案