ORACLE语法中的INSERT INTO。。。SELECT。。。

来源:互联网 发布:package.json scripts 编辑:程序博客网 时间:2024/06/08 16:22

今天写INSERT语句,想直接把一表里的数据取出直接插进另外一表。结果语法忘记了。找了半天。真是白痴啊自己,先把找到的语法记录下来吧。。。
set feedback off;
set pagesize 0;

create table foo (a number, b varchar(10), c varchar(10));

insert into foo values ( 15, 'abc','def' );
insert into foo values (998, 'max','min' );
insert into foo values (  7, 'bla','bla' );
insert into foo values (632, 'now','then');

insert into foo
  (a,b,c)
  (select                   AA,
                            BB,
                            CC
  from
    (select max(a) +1       AA      from foo),
    (select 'new'           BB,
            'old'           CC      from dual));

select * from foo where a = (select max(a) from foo);

drop table foo;

 

///////////////////////////////////////////////下面是自己写的。。。RQ字段因为要使用INDEX,所以用BETWEEN
insert into mhmis.t_cxlc_info
  (LAST_TRANS_DATE, rq, ch, xc, dwdm)
  ((select sysdate, a.rq, a.ch, a.xc, a.dwdm
     from tdb.t_cxlc_info a
    where not exists (select rq, ch, xc, dwdm
             from mhmis.t_cxlc_info
            where dwdm = a.dwdm
              and xc = a.xc
              and ch = a.ch
              and rq = a.rq)
      and (a.rq between to_date('2003-09-22', 'yyyy-mm-dd') and
          to_date('2004-09-23', 'yyyy-mm-dd'))
      and a.ch in (select b.ch from db_ps_train b)));

原创粉丝点击