SQL查詢中的UNION ALL和UNION區別

2021-07-25 12:55:12 字數 1951 閱讀 7242

和union all

的重要的區別關於對重複結果的處理。

union

在合併子查詢重複的記錄只保留一條,而

union all

並不合併子查詢的重覆記錄。現舉例說明它們之間的區別。

示例1:查詢職位為『clerk』員工資訊。

sql> select empno,ename,job deptno from emp where job='clerk';

empno ename      deptno

---------- ---------- ---------

7369 smith      clerk

7876 adams      clerk

7900 james      clerk

7934 miller     clerk

示例2:查詢部門編號為20員工資訊。

sql> select empno,ename,job deptno from emp where deptno=20;

empno ename      deptno

---------- ---------- ---------

7369 smith      clerk

7566 jones      manager

7788 scott      analyst

7876 adams      clerk

7902 ford       analyst

示例3:使用

union all

合併示例1和示例2的子查詢。

sql> select empno,ename,job deptno from emp where job='clerk'

2  union all

3  select empno,ename,job deptno from emp where deptno=20;

empno ename      deptno

---------- ---------- ---------

7369 smith      clerk

7876 adams      clerk

7900 james      clerk

7934 miller     clerk

7369 smith      clerk

7566 jones      manager

7788 scott      analyst

7876 adams      clerk

7902 ford       analyst

已選擇9行。

示例4:使用

union

合併示例1和示例2的子查詢。

sql> select empno,ename,job deptno from emp where job='clerk'

2  union

3  select empno,ename,job deptno from emp where deptno=20;

empno ename      deptno

---------- ---------- ---------

7369 smith      clerk

7566 jones      manager

7788 scott      analyst

7876 adams      clerk

7900 james      clerk

7902 ford       analyst

7934 miller     clerk

已選擇7行。

從示例4可以看到union合併後記錄資料比使用union all少了2條。很顯然使用union查詢合併了兩個子查詢的重複的記錄。

SQL中UNION與UNIONALL的區別

sqlserver2000中 union與 unionall的 區別union運算子 將兩個或更多查詢的結果組合為單個結果集,該結果集包含聯合查詢中的所有查詢的全部行。這與使用聯接組合兩個表中的列不同。使用union組合兩個查詢的結果集的兩個基本規則是 所有查詢中的列數和列的順序必須相同。資料型別必...

SQL中Union和Union All的用法

union 操作符 union 操作符用於合併兩個或多個 select 語句的結果集,請注意,union 內部的 select 語句必須擁有 相同數量的列,列也必須擁有 相似的資料型別,同時,每條 select 語句中的列的 順序必須相同。union跟 join 有些許類似,因為這兩個指令都可以由多...

SQL中UNION和UNION ALL的詳細用法

在開發中,有些資料的儲存可能涉及到分庫分表,查詢的時候,可能需要查詢所有的分表,這個時候,就需要用到union或者union all,下面介紹一下union的用法以及與union all的區別 union操作符用於合併兩個或多個select語句的結果集,這裡需要注意的是 union內部的select...