zoukankan      html  css  js  c++  java
  • oracle的多表插入学习笔记

    ----------------------------multitable  insert--------------------------------
    ----------------insert all----------------------------------------------------
    select * from emp ;

    create table sal_history (
    empid NUMBER(4),hiredate date, SAL number(7,2)
    );
    create table mgr_history (
    empid NUMBER(4), mgr number(4),SAL number(7,2)
    );

    INSERT ALL
    INTO sal_history VALUES(EMPID,HIREDATE,SAL)
    INTO mgr_history VALUES(EMPID,MGR,SAL)
    SELECT empno EMPID, HIREDATE, SAL, MGR
    FROM emp
    WHERE empno < 7654 ;

    commit ;

    select * from sal_history ;
    select * from mgr_history ;

    -------------------conditional insert all-------------------------------
    truncate table sal_history ;
    truncate table mgr_history ;

    INSERT ALL
    when empid >= 7521 then
    INTO sal_history VALUES(EMPID,HIREDATE,SAL)
    when mgr >= 7839 then
    INTO mgr_history VALUES(EMPID,MGR,SAL)
    SELECT empno EMPID, HIREDATE, SAL, MGR
    FROM emp
    WHERE empno < 7654 ;

    commit ;
    注意: when语句里面只能使用pseudocolumn

    --------------------conditional FIRST INSERT-----------------------
    查询得到的语句,如果满足第一个条件,则执行对应的第一个动作,而后面将不再考虑已经处理过的返回行。
    INSERT first
     when empid < 7654 then
      INTO sal_history VALUES(EMPID,HIREDATE,SAL)
     when empid = 7499 then
      INTO sal_history VALUES(EMPID,HIREDATE,SAL)
     else
      into mgr_history values(EMPID,MGR,SAL)
    SELECT empno EMPID, HIREDATE, SAL, MGR
    FROM emp
    WHERE empno < 7654 ;

    如果有一部分返回行不满足第一个语句的条件,该部分会被当作条件插入处理。
    INSERT first
     when empid > 7654 then
      INTO sal_history VALUES(EMPID,HIREDATE,SAL)
     when mgr = 7499 then
      INTO sal_history VALUES(EMPID,HIREDATE,SAL)
     else
      into mgr_history values(EMPID,MGR,SAL)
    SELECT empno EMPID, HIREDATE, SAL, MGR
    FROM emp
    WHERE empno < 7654 ;

  • 相关阅读:
    看清爱情的本质,学会受伤。
    美股课堂:美国银行开户亲历记
    京JS 2013
    果皮移动
    果皮移动 移动电商!
    http://www.cutt.com/
    简网APP工场-服务介绍
    Get started
    中科院青年公寓
    c++ replaceAll
  • 原文地址:https://www.cnblogs.com/caibird2005/p/1372161.html
Copyright © 2011-2022 走看看