首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求外部连接查询FROM_TABLE标志

问请求外部连接查询FROM_TABLE标志
EN

Stack Overflow用户
提问于 2018-04-09 05:00:47
回答 2查看 59关注 0票数 2

我想要一个标志输出的完全外部连接,在甲骨文说,from_table,这表明这是兄弟会在外部连接的表。

对于ex A,完全外部连接将给出A和B的并,即A中的所有行和B中的所有行,如果A中的某物在B中没有相应的基准,则B部分为空,反之亦然。

代码语言:javascript
复制
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

我需要以下产出:

代码语言:javascript
复制
a   |  b | from_table
-----+-----
   1 | null | A
   2 | null | A
   3 |    3 | both
   4 |    4 | both
null |    6 | B
null |    5 | B

请提出这个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-09 05:08:34

代码语言:javascript
复制
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;

SQLFiddle演示

票数 1
EN

Stack Overflow用户

发布于 2018-04-09 05:27:42

它有资格连续使用nvl和nvl2函数:

代码语言:javascript
复制
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
 );

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49725844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档