首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL还是UNION还是什么?

SQL还是UNION还是什么?
EN

Stack Overflow用户
提问于 2014-12-04 10:58:26
回答 1查看 146关注 0票数 1

我有3个表,名为A、b和C。表a有a列。表B有a列,表c有a、c列。这些表包含如下数据:

我想从A,B,C获得所有数据,其中a=1

我想要的输出如下所示:

但是我从SSMS得到的结果如下所示:

我应该如何重构我的SQL以获得我想要的输出?

例如,我不希望在列中重复值

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-04 11:30:39

您需要加入这些值,但不只是在a值上,而是在位置上。SQL表表示无序集。我将假设bc列表示排序。

代码语言:javascript
复制
select a.a, b.b, c.c
from (select a.*, row_number() over (order by a) as seqnum
      from a
     ) a full outer join
     (select b.*, row_number() over (partition by a order by b) as seqnum
      from b
     ) b
     on a.a = b.a and a.seqnum = b.seqnum full outer join
     (select c.*, row_number() over (partition by a order by c) as seqnum
      from c
     ) c
     on c.a = coalesce(a.a, b.a) and c.seqnum = coalesce(a.seqnum, b.seqnum)
where coalesce(a.a, b.a, c.a) = 1;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27292284

复制
相关文章

相似问题

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