首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将同一个表并排显示两次,但使用不同的过滤器

将同一个表并排显示两次,但使用不同的过滤器
EN

Stack Overflow用户
提问于 2017-07-19 00:35:23
回答 2查看 336关注 0票数 0

我有一个表,我想要并排显示两次,其中该表在两侧按不同的标准进行过滤。因此,下面是表格现在的大致情况(这不是真实数据)。

代码语言:javascript
运行
复制
Name |1st|2nd|3rd 
-------------------
Mark |1  | 2 | 3
Mark |2  | 4 | 6
Mark |3  | 6 | 8
Tim  |6  | 2 | 4
Tim  |10 | 11| 1

我希望结果是这样的:

代码语言:javascript
运行
复制
Name1|1st|2nd|3rd  Name2|1st|2nd|3rd
-------------------------------------
Mark | 1 | 2 | 3  | Tim | 6 | 2 | 4
Mark | 2 | 4 | 6  | Tim | 10| 11| 1
Mark | 3 | 6 | 8  |

所以我可以并排看到Mark和Tim的结果。

当我执行完整的外连接时,我得到了它,这样我就可以看到表的第一个版本的所有结果,其中第二个版本的结果为null,而结果表中的结果相反。这是意料之中的,但如果可能的话,我想知道如何以我想要的方式显示它。使用t-sql。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-19 01:03:44

代码语言:javascript
运行
复制
--creating table
with myTable as (
select 'mark' as Name , 1 as [1st] , 2 as [2nd] , 3 as [3rd]
union 
select 'mark' as Name , 2 as [1st] , 4 as [2nd] , 6 as [3rd]
union 
select 'mark' as Name , 3 as [1st] , 6 as [2nd] , 8 as [3rd]
union 
select 'Tim' as Name , 6 as [1st] , 2 as [2nd] , 4 as [3rd]
union 
select 'Tim' as Name , 10 as [1st] , 11 as [2nd] , 1 as [3rd]
)

--query
select * from (
select ROW_NUMBER()over (order by a.name) as Row , * from myTable as a
where Name= 'Mark' )x
left join  (
select ROW_NUMBER()over (order by a.name) as Row , * from myTable as a 
where Name= 'Tim' )y
on x.Row = y.Row

结果如下:

代码语言:javascript
运行
复制
Row                  Name 1st         2nd         3rd         Row                  Name 1st         2nd         3rd
-------------------- ---- ----------- ----------- ----------- -------------------- ---- ----------- ----------- -----------
1                    mark 1           2           3           1                    Tim  6           2           4
2                    mark 2           4           6           2                    Tim  10          11          1
3                    mark 3           6           8           NULL                 NULL NULL        NULL        NULL
票数 0
EN

Stack Overflow用户

发布于 2017-07-19 00:36:59

尝试使用联合。

Union避免显示重复的数据,但可以像您所要求的那样将其移动到列中。

如果你可以发布完整的查询,我可以更准确地演示。

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

https://stackoverflow.com/questions/45172540

复制
相关文章

相似问题

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