Union和Union ALL的用法

2021-07-31 14:38:07 字數 1567 閱讀 5721

首先,union和unionall都是用來合併兩個或兩個以上select  sql語句的操作符,

區別在於union去重,而union all會列出所有結果包括重複的。

下面來看看具體例子:

union 操作符用於合併兩個或多個 select 語句的結果集。

請注意,union 內部的 select 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 select 語句中的列的順序必須相同。

select column_name(s) from table_name1

union

select column_name(s) from table_name2

注釋:預設地,union 操作符選取不同的值。如果允許重複的值,請使用 union all。

select column_name(s) from table_name1

union all

select column_name(s) from table_name2

另外,union 結果集中的列名總是等於 union 中第乙個 select 語句中的列名。

e_id

e_name

01zhang, hua

02wang, wei

03carter, thomas

04yang, ming

e_id

e_name

01adams, john

02bush, george

03carter, thomas

04gates, bill

列出所有在中國和美國的不同的雇員名:

select e_name from employees_chinaunionselect e_name from employees_usa
e_name

zhang, hua

wang, wei

carter, thomas

yang, ming

adams, john

bush, george

gates, bill

注釋:這個命令無法列出在中國和美國的所有雇員。在上面的例子中,我們有兩個名字相同的雇員,他們當中只有乙個人被列出來了。union 命令只會選取不同的值。

union all 命令和 union 命令幾乎是等效的,不過 union all 命令會列出所有的值。

sql statement 1

union all

sql statement 2

列出在中國和美國的所有的雇員:

select e_name from employees_chinaunion allselect e_name from employees_usa
e_name

zhang, hua

wang, wei

carter, thomas

yang, ming

adams, john

bush, george

carter, thomas

gates, bill

UNION 和UNION ALL 的區別

在資料庫中,union 和union all 關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union 在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表 ...

UNION和UNION ALL的區別

關鍵字 union 和union all 的區別 出處 在資料庫中,union和union all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用...

UNION 和UNION ALL 的區別

在資料庫中,union 和union all 關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。union 在進行表鏈結後會篩選掉重複的記錄,所以在表鏈結後會對所產生的結果集進行排序運算,刪除重複的記錄再返回結果。實際大部分應用中是不會產生重複的記錄,最常見的是過程表與歷史表 ...