You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中如何横向拼接两个无关联关系的数据表?

PostgreSQL 实现无关联表横向拼接方案

要实现类似pandas中pd.concat(axis=1)的无关联表横向按行拼接效果,最简单的方式是通过行号关联实现:

核心思路

由于两张表没有关联字段,我们先给每张表的原有行按顺序生成唯一行号,再通过行号做全外连接,就能保留两张表的所有行,按原有顺序并排拼接,不足的字段位置自动补NULL。

实现代码

WITH t1 AS (
    -- 给table_01的每行生成行号
    SELECT *, ROW_NUMBER() OVER () AS rn FROM table_01
),
t2 AS (
    -- 给table_02的每行生成行号
    SELECT *, ROW_NUMBER() OVER () AS rn FROM table_02
)
SELECT column_a, column_b, column_c, column_d
FROM t1
FULL OUTER JOIN t2 ON t1.rn = t2.rn
-- 保证结果顺序和原表行顺序一致
ORDER BY COALESCE(t1.rn, t2.rn);

效果说明

针对你提供的测试数据,执行上述SQL后:

  • 第一行同时展示table_01的第一行数据和table_02的第一行数据
  • 第二行仅展示table_01的第二行数据,column_c、column_d字段自动补NULL
    完全符合横向拼接无重复数据的需求。

内容的提问来源于stack exchange,提问作者eduardosteps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:45:05