如何为具有相同列名的两个不同表排除不为null并仅包括null值

时间:2018-07-16 19:22:36

标签: database oracle

有人可以帮助我如何为具有相同列名的两个不同表排除非空值并且仅包括空值吗?

TableA                               TableB
Sub_id  Track_no   Active_date        Sub_id  Track_no   Active_date
-------  -------- -----------         -------  -------- -----------
001          123     null             001          124     01/02/2013
001          124     null
001          125     null

这里我需要获取记录Track_no,其中active_date为null且sub_id = 001,我必须联接两个表,因为Active_date仅在tableB中可用。

2 个答案:

答案 0 :(得分:1)

我希望我对你

select * from tableA a 
inner join tableB b
on a.sub_id = b.sub_id
and a.track_no = b.track_no
and a.active_date is null

答案 1 :(得分:0)

以下查询显示了tableA数据,但如果tableA中的数据为null,则active_date取自tableB。

select sub_id, 
       track_no, 
       coalesce(a.active_date,b.active_date) active_date, 
       a.active_date active_date_from_a, 
       b.active_date active_date_from_b
from   tableA a 
         left join tableB b
           on a.sub_id = b.sub_id