注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

伯纳乌の夢

可以挽回么?我们按“ Ctrl+Z”撤销掉吧。对不起啦~~

 
 
 

日志

 
 
 
 

Oracle Insert   

2009-08-24 22:50:46|  分类: Oracle/SQLServer |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1、无条件INSERT,同时向这两表插入数据

insert all

 into test1 values( object_id,object_name)

 into test2 values(object_id,object_name,object_type)

 select objecT_id,object_name,object_type

 from user_objects

 where rownum<20

已创建30行。

SQL> select count(*) from test1;

  COUNT(*)

----------

        15

可以看到总共插入了38行,每个表插入了19行

2、条件INSERT,当每个不同条件成立的时候插入不同表

insert all

when object_type=’TABLE’ then into test1 values (object_id,object_name)

when object_type=’SYNONYM’ then into test2 values (bject_id,object_name,object_type)

select object_id,object_name,object_type

from user_objects

已创建9行。

SQL> select count(*) from test1;

  COUNT(*)

       24

SQL> select count(*) from test2;

  COUNT(*)

         15

可以看到,符合object_type=’TABLE’的9条记录被插入到test1表中,符合object_type=’SYNONYM’的0条记录被插入到test2表中,总共插入了24条记录。

3、条件FIRST INSERT

     select objecT_id ,object_type from user_objects

     where object_id<10

 OBJECT_ID OBJECT_TYPE

---------- --------------------------------------

         2 CLUSTER

         3 INDEX

         4 TABLE

         5 TABLE

         6 CLUSTER

         7 INDEX

         8 CLUSTER

         9 INDEX

看到前9条记录中,INDEX 有4条。于是写如下SQL测试

insert first

when object_type='INDEX' then into info values (object_id)

 when object_id<10 then into test1 values (object_id,object_name)

    select object_id,object_name,object_type

   from user_objects

已创建715行。

SQL> select count(*) from info;

  COUNT(*)

----------

       710

SQL> select * from test1;

        ID NAME

---------- ---------------------

         6 C_TS#

         5 CLU$

         8 C_FILE#_BLOCK#

         2 C_OBJ#

         4 TAB$

可以看到用FIRST后,凡是符合第一个条件的就都插入第一个表,其他的数据才再以后的条件里再判断。

4、用这种写法,也可以达到行转列的目的.

TINSERT ALL

INTO sales_info VALUES (employee_id,week_id,sales_MON)

INTO sales_info VALUES (employee_id,week_id,sales_TUE)

INTO sales_info VALUES (employee_id,week_id,sales_WED)

INTO sales_info VALUES (employee_id,week_id,sales_THUR)

INTO sales_info VALUES (employee_id,week_id, sales_FRI)

SELECT EMPLOYEE_ID, week_id, sales_MON, sales_TUE,sales_WED, sales_THUR,sales_FRI

FROM sales_source_data;

  评论这张
 
阅读(702)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017