sql語句union的用法
union聯(lián)合的結(jié)果集不會有重復(fù)值,如果要有重復(fù)值,則使用union all
union會自動壓縮多個結(jié)果集合中重復(fù)的結(jié)果,使結(jié)果不會有重復(fù)行,union all 會將所有的結(jié)果共全部顯示出來,不管是不是重復(fù)。
union:會對兩個結(jié)果集進行并集操作,不包括重復(fù)行,同時進行默認(rèn)規(guī)則的排序。
union all:對兩個結(jié)果集進行并集操作,包括重復(fù)行,不會對結(jié)果進行排序。
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:
select E_ID,E_Name FROM employees_china union select E_ID,E_Name FROM employees_usa
去掉:
union all:
select E_ID,E_Name FROM employees_china union all select E_ID,E_Name FROM employees_usa
不能去掉:
當(dāng)存在不相同的字段時:
必須進行補充:
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 語句的結(jié)果集。
請注意,UNION 內(nèi)部的 SELECT 語句必須擁有相同數(shù)量的列。列也必須擁有相似的數(shù)據(jù)類型。同時,每條 SELECT 語句中的列的順序必須相同。
SQL UNION 語法
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
注釋:默認(rèn)地,UNION 操作符選取不同的值。如果允許重復(fù)的值,請使用 UNION ALL。
SQL UNION ALL 語法
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2
另外,UNION 結(jié)果集中的列名總是等于 UNION 中第一個 SELECT 語句中的列名。
eg:
表中的數(shù)據(jù):
使用union 查詢
上圖中的例子 根據(jù)類型 分別統(tǒng)計了 color 和total兩個字段的和,稍不注意就會把 3和79當(dāng)成一個"類型"的數(shù)據(jù),尤其是在聚合操作大量數(shù)據(jù)的時候.
小結(jié):
1.使用union時,一定要保證每條語句的字段順序一致,特殊需求除外.
2.union all(結(jié)果集不去重)比union(結(jié)果集去重)的執(zhí)行效率高很多 注意區(qū)別
3.如果要排序在最后一個select語句上加order by即可
總結(jié)
到此這篇關(guān)于sql語句中union用法與踩坑的文章就介紹到這了,更多相關(guān)sql語句union的用法內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文地址:https://blog.csdn.net/weixin_42383680/article/details/119858753