SELECT查詢結果集INSERT到資料表

2022-02-09 06:02:52 字數 2077 閱讀 5387

簡介

將查詢語句查詢的結果集作為資料插入到資料表中。

一、通過insert select語句形式向表中新增資料

例如,建立一張新錶addresslist來儲存班級學生的通訊錄資訊,然後這些資訊恰好存在學生表中,則可以從學生表中提取相關的資料插入建好的addresslist表中。

t-sql語句如下:

insert

into

addresslist(姓名,位址,郵箱)

select

name,address,email

from students

語法快記:該語句和常規的插入語句語法很相似,為了更好的記住語法,即可理解此插入語句把values替換成了查詢語句。

使用該語句插入資料的注意事項:

1.查詢語句部分其中列的個數、順序、資料型別必須與insert語句的指定列要保持一致,列名可以不相同。

2.insert語句插入資料的表必須是預先建立好的。

insert select語句形式中的查詢部分不僅可以是單錶,可以支援不同形式的查詢語句,只要保證查詢結果集的列和要插入資料的列是匹配的即可。

1.聯接查詢作為資料

insert

into

addresslist (name,address)

select a.username,b.address from

system_users a

inner

join base_customer b on a.code=b.code

2.union合併多個結果集作為資料

insert

into

addresslist(name,address)

select'張三

','洛杉磯

'union

select'李四

','舊金山

'union

select'王五

','華盛頓

'

3.資料來自其他資料庫(跨資料庫插入) 

insert

into

studentinfo(name)

select lxr from agrodb.dbo.base_customer

二、通過select into語句形式將查詢結果集的資料新增到新資料表

select into語句形式的插入方式和insert into 語句形式插入方式有相同處和不同處。

相同:它們插入的資料都是來自select查詢結果集

不同:insert into 語句形式插入的資料表必須是預先建立,select into語句形式的插入的資料表是在執行該語句時新建立的。

t-sql語句如下:

select

name,address,email

into

addresslist

from students

語法快記:整體結構就是查詢語句的結構,即在from關鍵字之上指派了into關鍵字加新資料表名。

語句執行邏輯:

1.建立新資料表,新錶的資料結構來自於查詢語句指定的列。

2.將查詢結果集的資訊插入到新錶中,只會插入select 中指派的列,列可以指定部分也可以全部。

select into語句形式會執行插入資料和建立表兩種命令,這樣會延伸到乙個新問題:如何給新錶中指定乙個標識列?

因為標識列的資料是自增的,因此我們可以在select into語句中加入標識列的建立,語法如下:

select

identity(int,1,1) as

aid ,students.name,students.address,students.email

into

addresslist

from students

讓select查詢結果隨機排序

原載自 前段時間客戶提出了乙個需求,就是想讓查詢的結果隨機排序一下。查詢了很多東西說的很是不明白,最後解決了問題。方案如下 只是在order by 後面加上一些東西。注 也許只適用與access哦,這個只在access環境中測試通過。select from tablename order by ri...

讓select查詢結果隨機排序

原載自 前段時間客戶提出了乙個需求,就是想讓查詢的結果隨機排序一下。查詢了很多東西說的很是不明白,最後解決了問題。方案如下 只是在order by 後面加上一些東西。注 也許只適用與access哦,這個只在access環境中測試通過。select from tablename order by ri...

select語句中更改查詢結果 case when

有時資料庫中為了儲存空間的節約,存了一些比較小的字段,這是可以在select語句中進行轉換。在 select 語句中用條件語句 如果,資料庫中乙個字段 gender 來儲存性別,存的是 1 0兩個值,這時可以用 select case when gender 1 then man else woma...