zoukankan      html  css  js  c++  java
  • oracle 的 union union all intersect minus用法(转)

    集合操作有 并,交,差 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 
    
    来自:http://www.douban.com/note/154030850/
  • 相关阅读:
    AtCoder Grand Contest 49
    Kotlin Heroes 5: ICPC Round 题解 (A-H)
    轮盘赌随机选择算法
    洛谷P1579.验证哥德巴赫猜想(DFS+素性测试)
    洛谷P1308.统计单词数(字符串匹配)
    洛谷P1149.火柴棒等式(暴力搜索)
    洛谷P1036.选数(DFS)
    洛谷P1028.数的计算(动态规划)
    Python对list操作的一些小技巧
    图的DFS和BFS(邻接表)
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/2083394.html
Copyright © 2011-2022 走看看