首页 > 解决方案 > 将 SELECT 查询中的列彼此相邻添加

问题描述

我必须查询返回下表:

foo | bar
----+----
  1 |   2
  5 |   6

baz | qux
----+----
  3 |   4
  7 |   8

我想将它们结合起来返回下表

foo | bar | baz | qux
----+-----+-----+----
  1 |   2 |   3 |   4
  5 |   6 |   7 |   8

除了他们在各自SELECT陈述之后的顺序之外,他们没有加入任何条件。这可能是一个可笑的简单问题,但我似乎无法弄清楚如何用搜索词来返回我想要的东西

标签: sqlpostgresql

解决方案


您可以使用row_number()函数添加该条件并加入这些结果:

SELECT T1.foo, T1.bar, T2.baz, T2.qux
FROM 
  (SELECT table1.*, row_number() OVER () as rnum1 FROM (query1) table1) T1
  JOIN (SELECT table2.*, row_number() OVER () as rnum2 FROM (query2) table2) T2
    ON T1.rnum1 = t2.rnum2

根据您的情况,可以有LEFT JOINRIGHT JOIN代替。


推荐阅读