我想要一个标志输出的完全外部连接,在甲骨文说,from_table,这表明这是兄弟会在外部连接的表。
对于ex A,完全外部连接将给出A和B的并,即A中的所有行和B中的所有行,如果A中的某物在B中没有相应的基准,则B部分为空,反之亦然。
select * from a FULL OUTER JOIN b on a.a = b.b;
a | b
-----+-----
1 | null
2 | null
3 | 3
4 | 4
null | 6
null | 5我需要以下产出:
a | b | from_table
-----+-----
1 | null | A
2 | null | A
3 | 3 | both
4 | 4 | both
null | 6 | B
null | 5 | B请提出这个问题。
发布于 2018-04-09 05:08:34
select a.*, b.*,
case when a.a is not null and b.b is not null then 'both'
when a.a is not null then 'a'
else 'b'
end as from_table
from a
FULL OUTER JOIN b on a.a = b.b;发布于 2018-04-09 05:27:42
它有资格连续使用nvl和nvl2函数:
select a, b, decode(sign(nvl2(x,1,0)*nvl2(y,1,0)),1,'both',nvl(x,y)) "from_table"
from
(
select a.*, b.*, nvl2(a,'A',null) x, nvl2(b,'B',null) y
from a FULL OUTER JOIN b on a.a = b.b order by a,b
);https://stackoverflow.com/questions/49725844
复制相似问题