问题是,我们有两个表t1和t2。 t1有3列,t2有2列。假设t1有5条记录,t2有3条记录。我想合并或加入两个表,以便t2的记录在最后一个记录之后出现在表t1中。我们可以创建类似于T1(c1,c2,c3)和T2(c2,c3)的列,其中c2和c3在两个表中都是相同的数据类型,而c1则作为主键或唯一键。
答案 0 :(得分:1)
您可以使用UNIQUE ALL语句(没有“all”的普通联合只返回不同的值)。
select c1, c2, c3 from t1
union all
select null as c1, c2, c3 from t2
答案 1 :(得分:1)
这将返回两个表中的所有行,其中T1的行出现在T2的行之前。
select c1, c2, c3 from t1
union all
select null as c1, c2, c3 from t2
order by nvl2(c1, 0, 1) asc
当C1的值不为空时,NVL2()命令将返回0;对于T1中的所有行(它是主键)都是如此,对于T2中的所有行都是如此。表的顺序是任意的,但可以通过向ORDER BY子句添加其他列来修复。
答案 2 :(得分:0)
如果正确理解您的帖子,您希望将表t2
中可以找到的记录附加到表t1
。
insert into t1 (c1, c2, c3) (select sequence_for_t1.nextval, c2, c3 from t2)
答案 3 :(得分:0)
你可以使用
UNION
用于合并多个表的记录