我有兩個表: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