我有两个表:SQLite的垂直堆栈
data1
A B
0 1
0 1
data2
A B
2 3
2 3
我想创建一个四表,该表上面的垂直堆栈:
data3
A B
0 1
0 1
2 3
2 3
我不熟悉SQLite和我目前使用SAS,这可以使用数据步骤查询来完成:
data data3;
set data1 data2;
run;
如何在SQLite中执行此操作?
我有两个表:SQLite的垂直堆栈
data1
A B
0 1
0 1
data2
A B
2 3
2 3
我想创建一个四表,该表上面的垂直堆栈:
data3
A B
0 1
0 1
2 3
2 3
我不熟悉SQLite和我目前使用SAS,这可以使用数据步骤查询来完成:
data data3;
set data1 data2;
run;
如何在SQLite中执行此操作?
您可以使用union all
:
create table data3
select A, B from data1 union all
select A, B from data2;
注意,在SQL中,你并不需要创建一个新的表做这个。你可以只是把union all
在一个子查询:
select d.*
from (select A, B from data1 union all
select A, B from data2
) d;
这通常比创建另一个表一个更好的主意。
这可以在不写出单个列名的情况下完成吗? (让我们假设我知道它们在两个数据集中都是一样的) – Chuck
@Chuck是的,只要'select *',只要两个表具有相同的结构 – user2877959
当然是(* facepalm *)。这会比其他答案快吗? – Chuck
你可以使用CREATE TABLE ... AS SELECT
和INSERT INTO table SELECT ...
查询,如:
CREATE TABLE data3 AS SELECT * FROM data1;
INSERT INTO data3 SELECT * FROM data2;
对于downvoter,请让我知道我可以改善这个问题!如果感觉重复,我会很乐意这样做(或删除)。 – Chuck