Вы можете использовать UNION ALL, как показано ниже, а для не распространенных столбцов вы можете использовать ноль.
WITH sub1
AS (SELECT ROWNUM rw,
d.*
FROM table1 d),
sub2
AS (SELECT ROWNUM rw,
b.*
FROM table2 b),
sub3 as(SELECT common_col1,null not_common,rw from sub2
union all
select common_col1,not_common,rw from sub1)
select common_col1,not_common from sub3 order by rw