union的特性,去重與不去重


集合操作有 並,交,差 3種運算。 

 union :得到兩個查詢結果的並集,並且自動去掉重復行。不會排序 

 union all:得到兩個查詢結果的並集,不會去掉重復行。也不會排序 

 intersect:得到兩個查詢結果的交集,並且按照結果集的第一個列進行排序 

 minus:得到兩個查詢結果的減集,以第一列進行排序 

例子: 
  下面是兩個表:一個主修課程表,一個選修課程表。 
這個是主修課程表:minors 
     create table minors( 
         minor_id number primary key, 
         minor_name varchar2(30) not null, 
         credit_hour number(2) 
      ) 
插入3條記錄:                
    insert into minors values(10101,'計算機原理',4) 
      insert into minors values(10201,'自動控制原理',3) 
      insert into minors values(10301,'工程制圖原理',4) 
下面創建選修課程表minors2 
       create table minors2( 
         minor_id number primary key, 
         minor_name varchar2(30) not null, 
         credit_hour number(2) 
       ) 
插入兩條記錄: 
        insert into minors2 values(10201,'自動控制原理',3) 
       insert into minors2 values(10301,'工程制圖原理',4)   

(1)
兩個表使用union all:得到如下結果 
        select minor_id,minor_name,credit_hour from minors union all 
       select minor_id,minor_name,credit_hour from minors2 order by     credit_hour 
結果: 
MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10201 自動控制原理                             3 
     10201 自動控制原理                             3 
     10101 計算機原理                               4 
     10301 工程制圖原理                             4 
     10301 工程制圖原理                             4 

(2)
兩個表使用union :得到如下結果 
select minor_id,minor_name,credit_hour from minors union 
    select minor_id,minor_name,credit_hour from minors2 order by credit_hour 
結果: 
MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10201 自動控制原理                             3 
     10101 計算機原理                               4 
     10301 工程制圖原理                             4 

(3)
兩個表使用intersect :得到如下結果 
     select minor_id,minor_name,credit_hour from minors intersect 
    select minor_id,minor_name,credit_hour from minors2 
結果: 
MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10201 自動控制原理                             3 
     10301 工程制圖原理                             4 

(4)

兩個表使用minus :得到如下結果 
    select minor_id,minor_name,credit_hour from minors minus 
    select minor_id,minor_name,credit_hour from minors2 
結果: 
MINOR_ID MINOR_NAME                     CREDIT_HOUR 
---------- ------------------------------ ----------- 
     10101 計算機原理                               4 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM