将自定义列添加到联合表 - Oracle SQL

时间:2017-12-04 18:32:32

标签: oracle

enter image description here

我正在处理Oracle数据库中两个不同表之间的以下联合。

第一个查询是指属于payer_no当前车队一部分的船只。第二个查询是指在某个时间进行交易的所有船只。

如果某个项目在第一个查询中显示 ,我想要一个自定义列,其中显示“当前车队”,如果第二个查询中出现项,我想要一个说“过去的舰队”的专栏。

输出看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:1)

有待澄清如果"项目"会发生什么?出现在UNION的两个成员中:

执行所需操作的常用方法是向联合的两个成员添加一个带有硬编码值且名称相同的列。如果一个或两个成员是连接的结果,或任何其他简单或复杂的计算,则无关紧要。

select col_1, col_2, ... , col_n, 'Current Fleet' as status
from   ( big join or whatever here; do prefix columns with table aliases in a join! )
UNION    --  Or UNION ALL  !
select col_1, col_2, ... , col_n, 'Past Fleet'    as status
from   .........