SQL union all和union的區別和使用

2021-10-20 00:00:52 字數 1145 閱讀 2824

1、區別:

如果我們需要將兩個select語句的結果作為乙個整體顯示出來,我們就需要用到union或者union all關鍵字。union(或稱為聯合)的作用是將多個結果合併在一起顯示出來。

2、語法:

[sql 語句 1]

union

[sql 語句 2]

[sql 語句 1]

union all

[sql 語句 2]

3、union 和 union all效率:

union 和 union all關鍵字都是將兩個結果集合並為乙個,但這兩者從使用和效率上來說都有所不同。

1、對重複結果的處理:union在進行表鏈結後會篩選掉重複的記錄,union all不會去除重覆記錄。

2、對排序的處理:union將會按照欄位的順序進行排序;union all只是簡單的將兩個結果合併後就返回。

從效率上說,union all 要比union快很多,所以,如果可以確認合併的兩個結果集中不包含重複資料且不需要排序時的話,那麼就使用union all。

注意:兩個要聯合的sql語句字段個數必須一樣,而且字段型別要「相容」(一致);

union和union all關鍵字需要注意:

union 和 union all都可以將多個結果集合並,而不僅僅是兩個,你可以將多個結果集串起來。

使用union和union all必須保證各個select 集合的結果有相同個數的列,並且每個列的型別是一樣的。但列名則不一定需要相同,oracle會將第乙個結果的列名作為結果集的列名。

4、例如下面是乙個例子:

select empno,ename from emp 

union

select deptno,dname from dept

我們沒有必要在每乙個select結果集中使用order by子句來進行排序,我們可以在最後使用一條order by來對整個結果進行排序。例如:

select empno,ename from emp 

union

select deptno,dname from dept

order by ename;

sql union all 和 union的區別

nion all操作僅僅是簡單的將兩個子查詢結果集直接求並操作,並不會剔除掉兩者結果集中重複的部分,而union操作除了會剔除掉結果集中重複的部分以外,還會對結果集進行排序 其實執行的實質邏輯應該是先將某一子結果集進行排序,然後再判斷是否有重複的資料,若有則刪除掉重複的資料 小tips 由於unio...

SQL union all 和union 的用法

union all 這個指令的目的也是要將兩個 sql 語句的結果合併在一起。union all 和 union 不同之處在於 union all 會將每一筆符合條件的資料都列出來,無論資料值有無重複。union all 的語法如下 sql 語句 1 union all sql 語句 2 store...

C 學習 原創 unique和uni

c 學習 原創 unique和unique copy函式的應用 孫宇洪 unique函式的功能是 去除相鄰的重複元素 只保留乙個 函式引數 unique first,last,compare first為容器的首迭代器,last為容器的末迭代器,compare為比較函式 可略寫 注意 unique函...