Если вы используете Db2 11.1, вы можете использовать синтаксис JOIN USING
, чтобы избежать двух копий объединенных столбцов в наборе результатов https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.sql.ref.doc/doc/r0059207.html
Например, с этими таблицами
create table AAA_PROD_XEUSS.P_E_LVR_CQT (i int, OPERATION int, PROCESS char(4)););
create table AAA_PROD_XEUSS.P_F_OPERATION (b int, OPERATION int);
create table BBB_PROD_XEUSS.P_E_LVR_CQT (c int, OPERATION int, PROCESS char(4));
create table BBB_PROD_XEUSS.P_F_OPERATION (b int, OPERATION int);
этот выбор
select *
from AAA_PROD_XEUSS.P_E_LVR_CQT CQT
left join AAA_PROD_XEUSS.P_F_OPERATION OPER
USING ( OPERATION )
union
select *
from BBB_PROD_XEUSS.P_E_LVR_CQT CQT
left join BBB_PROD_XEUSS.P_F_OPERATION OPER
USING ( OPERATION )
where CQT.PROCESS = '1111'
Order by OPERATION
Возвращает только один столбец с именем OPERATION
OPERATION I PROCESS B
--------- - ------- -
0 record(s) selected.
PS. Вы можете предпочесть использовать UNION ALL
вместо UNION
, чтобы избежатьDb2 приходится сортировать все строки, чтобы удалить дубликаты