系統城裝機大師 - 唯一官網:www.farandoo.com!

當前位置:首頁 > 數據庫 > MsSql > 詳細頁面

sql語句中union的用法與踩坑記錄

時間:2022-03-09來源:www.farandoo.com作者:電腦系統城

sql語句union的用法

 union聯合的結果集不會有重復值,如果要有重復值,則使用union all

 union會自動壓縮多個結果集合中重復的結果,使結果不會有重復行,union all 會將所有的結果共全部顯示出來,不管是不是重復。

 union:會對兩個結果集進行并集操作,不包括重復行,同時進行默認規則的排序。

 union all:對兩個結果集進行并集操作,包括重復行,不會對結果進行排序。

1
2
3
4
1.sql Union用法
select 字段1 from 表名1 Union select 字段2 from 表名2;
2.sql Union All用法
select 字段1 from 表名1 Union all select 字段2 from 表名2;

 employee_china表:

  employee_use表:

 union:

1
2
3
select E_ID,E_Name FROM employees_china
union
select E_ID,E_Name FROM employees_usa

去掉: 

 union all:

1
2
3
select E_ID,E_Name FROM employees_china
union all
select E_ID,E_Name FROM employees_usa

不能去掉: 

 當存在不相同的字段時:

 必須進行補充:

1
2
3
select E_ID,E_Name,E_Hello FROM employees_china
union all
select E_ID,E_Name,' ' as E_Hello FROM employees_usa

補充:SQL UNION踩過的坑

UNION 操作符用于合并兩個或多個 SELECT 語句的結果集。

請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同。

SQL UNION 語法

1
2
3
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

注釋:默認地,UNION 操作符選取不同的值。如果允許重復的值,請使用 UNION ALL。

SQL UNION ALL 語法

1
2
3
SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 結果集中的列名總是等于 UNION 中第一個 SELECT 語句中的列名。

eg:

表中的數據:

使用union 查詢

上圖中的例子 根據類型 分別統計了 color 和total兩個字段的和,稍不注意就會把 3和79當成一個"類型"的數據,尤其是在聚合操作大量數據的時候.

小結:

1.使用union時,一定要保證每條語句的字段順序一致,特殊需求除外.

2.union all(結果集不去重)比union(結果集去重)的執行效率高很多 注意區別

3.如果要排序在最后一個select語句上加order by即可

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

jlzzjlzz亚洲乱熟在线播放