繁体   English   中英

如何编写一个SQL查询以将两个已经排序的表水平合并到不同的列中?

[英]How to write an SQL query to combine two already-ordered tables horizontally with different columns?

我有两个表,它们要完全按原样并排放置。 例如,

tableOne                              tableTwo
columnOne | columnTwo | columnThree   columnI | columnII | columnIII

两个表中的数据都不需要关联-这些表具有相同的行数-并且数据已经在两个表中进行了排序。 基本上,我想在没有on运算符的情况下对两个表进行full outer join

如何在SQL查询中执行此操作?

好吧,您确实想要一个ON运算符-您似乎只是想让它自动运行,所以不会发生。

如果要说tableOne的第1行映射到tableTwo的第1行,那么您需要向每个表添加一个行列,然后对其进行联接。

如果不指定联接条件,则将执行cross join联接,将tableOne中的每一行连接到tableTwo中的每一行,这显然不是您想要的。

所以做这样的事情:

select * from 
  (select *, row_number() over (order by 1) as RN from tableOne) a
  inner join (select *, row_number() over (order by 1) as RN from tableTwo) b
     on a.RN = b.RN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM