env: Oracle 12 c
У меня есть запрос в Oracle, который является СОЮЗОМ между двумя таблицами: TABLE_A и TABLE_B.
select ID as COL_A,
VAL_B as COL_B,
VAL_C as COL_C,
VAL_D as COL_D,
VAL_E as COL_E
from TABLE_A
where VAL_E = 'XYZ12'
union
select NULL as COL_A,
NULL_B as COL_B,
VAL_C as COL_C,
NULL as COL_D,
VAL_E as COL_E
from TABLE_B
where VAL_E = 'XYZ12'
and ?????
COL_A COL_B COL_C COL_D COL_E
------ ------ ------ ----- -----
123 REQ1 REQ2 REQ3 XYZ12
REQ2 XYZ12
На основе запрос выше, и я застрял в том, что если существует запись с 'XYZ12' and 'REQ1'
, то я хочу только вернуть эту одну запись, в противном случае вернуть только вторую запись, т. е. там, где существует 'XYZ12', но COL_B IS NULL
. первичная запись является первой, если она существует в TABLE_A. Исходя из моих критериев, если она не существует, то возвращает только вторую запись из TABLE_B.