SQLite垂直堆叠
我有两张桌子:SQLite垂直堆叠,sql,sqlite,sas,Sql,Sqlite,Sas,我有两张桌子: 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中执行此操作?您可以使用和查询,如: CREATE TABLE data3 AS SELECT * FROM data1; INSERT INTO d
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中执行此操作?您可以使用和查询,如:
CREATE TABLE data3 AS SELECT * FROM data1;
INSERT INTO data3 SELECT * FROM data2;
您可以使用
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 yes,只要两个表的结构都相同(facepalm),只需执行
select*
。这比另一个答案快吗?@Chuck。使用union-all
组合表时,最好列出列名。这是没有必要的,但防御性编码是一个好主意。至于性能,如果您正在创建表,那么两次插入或一次插入可能会非常相似。对于downvoter,请告诉我如何改进此问题!如果感觉它是重复的,我很乐意这样做(或删除)。