我有两张桌子:
TABLE_A
head1 head2
foo case1
bar case2
和TABLE_B
head1 head2
hux case1
pix case2
ilf case1
我想要做的是创建此表:
head1 head2
foo case1
bar case2
hux case1
pix case2
ilf case3
即只是组合它们,而不删除任何冗余。
这样做的正确命令是什么? 我试过这个,但没有给出理想的结果。
CREATE TABLE TABLE_AB(head1 text, head2 text)
(SELECT * FROM TABLE_A)
UNION ALL
(SELECT * FROM TABLE_B)
答案 0 :(得分:1)
您可以将列名更改为所需的名称。
CREATE TABLE TAB1 (ID number, NAME VARCHAR2(10));
CREATE TABLE TAB2 (ID number, NAME VARCHAR2(10));
INSERT INTO TAB1 VALUES (1, 'AAA');
INSERT INTO TAB1 VALUES (2, 'BBB');
INSERT INTO TAB1 VALUES (3, 'CCC');
INSERT INTO TAB2 VALUES (1, 'EEE');
INSERT INTO TAB2 VALUES (4, 'FFF');
CREATE TABLE TAB AS ((SELECT * FROM TAB1) UNION ALL (SELECT * FROM TAB2));
答案 1 :(得分:1)
您可以省略联合部分周围的括号。另外,对于create table ... select
,您没有指定列定义。
create table Table3
select *
from Table1
union all
select *
from Table2