如何在Oracle中合并两个没有公分母/列的表

问题描述 投票:0回答:1

如何组合两个完全没有公分母/列的表格?这是示例数据:

表_1

表_2

预期输出

现在,我想合并两个表并仅获取每个表中的前 [5] 条记录。 Table_1、Sent_Status 的条件应为 0。 Table_2 的条件 Unused_status 应为 0。 现在,如果 Table_1 只有 3 记录且 Sent_Status=0,但 Table_2 有 [5] 条记录 Unused_status=0,则应遵循 Table_1 的行数,即 3。 在满足条件的情况下,这两个表是否可以合并? 有人能指出我正确的方向吗? 预先感谢您!

oracle-sqldeveloper
1个回答
0
投票

为每个表的行分配一个行号,然后加入:

SELECT t1.id,
       t1.email_address,
       t2.color
FROM   (
         SELECT id,
                email_address,
                ROW_NUMBER() OVER (ORDER BY id) AS rn
         FROM   table_1
         WHERE  sent_status = 0
       ) t1
       FULL OUTER JOIN (
         SELECT color,
                ROW_NUMBER() OVER (ORDER BY id) AS rn
         FROM   table_2
         WHERE  unused_status = 0
       ) t2
       ON (t1.rn = t2.rn)
ORDER BY COALESCE(t1.rn, t2.rn)
FETCH FIRST 5 ROWS ONLY
© www.soinside.com 2019 - 2024. All rights reserved.