Sql-Server

將 3 個表中的數據複製到一個空表中的單個查詢

  • December 20, 2018

在今天的一次採訪中,有人問我是否可以編寫一個查詢來將數據從 3 個源表複製到一個空的目標表。

我開始說“我將使用臨時表或表變數”,但面試官說“不,我想查看單個語句或查詢”。

我是空白的:(

有人可以分享正確的答案嗎?

第一步:首先根據需求通過sql查詢準備數據集。

步驟 2:將準備好的記錄集插入到新表中。

**注意:**所有表的選擇列表 中'Union All'的列數必須相同。

**注意:**您可以根據JOIN業務需求通過連接準備來自不同表的數據並插入到新表中。

例如:

select * into newtable from
( 
select * from table1
union all
select * from table2
union all
select * from table3
) A

您可以通過修改公用表表達式的數據來做到這一點。

https://www.postgresql.org/docs/9.1/queries-with.html

它將作為單個查詢執行,其中包含來自不同來源的同一張表的多次插入。

with 
ins1 as (
   insert into dest(id, name)
   select id, name
   from source1
)
,ins2 as (
   insert into dest(id, name)
   select id, name
   from source2
)
,ins3 as (
   insert into dest(id, name)
   select id, name
   from source3
)
select l;

引用自:https://dba.stackexchange.com/questions/21145