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/
  • 相关阅读:
    jQuery:自学笔记(1)——基础入门
    Android开发——Accessibility机制实现模拟点击(微信自动抢红包实现)
    Android开发——常用ADB命令的使用
    虚拟现实开发一些建议
    Android开发——Activity生命周期
    JVM——内存管理和垃圾回收
    2016年工作中遇到的问题41-50:Dubbo注册中心奇葩问题,wifi热点坑了
    2016年工作中遇到的问题41-50:Dubbo注册中心奇葩问题,wifi热点坑了
    Spring核心技术(十)——JSR-330标准注解
    Spring核心技术(九)——Spring管理的组件和Classpath扫描
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/2083394.html
Copyright © 2011-2022 走看看