INSERT FIRST
同时插入到多张表,在这里整理下,以供查阅。先建两个测试表,ww1,ww2
SQL> desc ww1
名称                                      是否为空? 类型
----------------------------------------- -------- ---------------
ID                                                 NUMBER
NAME                                               VARCHAR2(30)
SQL> desc ww2
名称                                      是否为空? 类型
----------------------------------------- -------- ---------------
ID                                                 NUMBER
NAME                                               VARCHAR2(30)
TABLESPACENAME                                     VARCHAR2(30)
无条件INSERT,同时向这两表插入数据
insert all
into ww1 values( object_id,object_name)
into ww2 values(object_id,object_name,object_type)
select objecT_id,object_name,object_type
from user_objects
where rownum<20
/
已创建38行。
SQL> select count(*) from ww1;
COUNT(*)
----------
19
可以看到总共插入了38行,每个表插入了19行
条件INSERT,当每个不同条件成立的时候插入不同表
insert all
when object_type='TABLE' then into ww1 values (object_id,object_name)
when object_type='SYNONYM' then into ww2 values (objecT_id,object_name,object_type)
select object_id,object_name,object_type
from user_objects
/
已创建727行。
SQL> select count(*) from ww1;
COUNT(*)
----------
718
SQL> select count(*) from ww2;
COUNT(*)
----------
9
可以看到,符合object_type='TABLE'的718条记录被插入到ww1表中,符合object_type='SYNONYM'的9条记录被插入到ww2表中,总共插入了718条记录。
条件FIRST INSERT
1  select objecT_id ,object_type from user_objects
2* where object_id<10
3  /
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 ww values (object_id)
when object_id<10 then into ww1 values (object_id,object_name)
select object_id,object_name,object_type
from user_objects
/
已创建715行。
SQL> select count(*) from ww;
COUNT(*)
----------
710
SQL> select * from ww1;
ID NAME
---------- ---------------------
6 C_TS#
5 CLU$
8 C_FILE#_BLOCK#
2 C_OBJ#
4 TAB$
可以看到,用FIRST后,凡是符合第一个条件的就都插入第一个表,其他的数据才再以后的条件里再判断.
用这种写法,也可以达到行转列的目的.
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;

转载于:https://blog.51cto.com/renyu/91441

SQL大全------之 oracle关于insert all的用法相关推荐

  1. oracle sql now函数,SQL Server,MySQL,Oracle,PostgreSQL中常用函数用法(1)日

    练习使用Hibernate没有用MySQL数据库,而是用了前不久接触的PostgreSQL,由于不同的数据对于相同的操作有各自的函数,MySQL的date_format(),在PostgreSQL中是 ...

  2. SQL语法范例大全(SQL Server、Oracle 通解)

    [书名]SQL语法范例大全(SQL Server.Oracle 通解) [作者]希赛IT发展研究中心  组编 黄少华,陈翠娥  编著 [ISBN]978-7-121-07396-0 [出版社]电子工业 ...

  3. Oracle PL/SQL 编程手册(SQL大全)

    一.SQLPLUS 1引言 SQL命令 以下17个是作为语句开头的关键字: alterdroprevoke auditgrantrollback* commit*insert ...

  4. Hive Sql 大全(hive函数,hive表)

    Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...

  5. SQL Server 与 ORACLE 的区别

    sql server 与  oracle的区别:    DBMS 数据库管理系统 1.数据类型不同.   sql server 的数据类型:int ,smallint ,char,varchar,nc ...

  6. 惊呆,一条sql竟然让oracle奔溃了

    一条sql就能让oracle挂了,真的是不敢相信啊,前几天生产上确实出现了这样一个故障,我们来一起做一个事件回放. 系统介绍 系统架构见下图: application1和application2是一个 ...

  7. oracle挂证多少钱一个月_惊呆,一条sql竟然把Oracle搞挂了

    一条sql就能把oracle搞挂了,真的是不敢相信啊,前几天生产上确实出现了这样一个故障,我们来一起做一个事件回放. 系统介绍 系统架构见下图: file application1和applicati ...

  8. oracle 导入sql文件 汉字乱码_将现有的sql脚本导入 Oracle 数据库,中文乱码问题...

    将现有的sql 脚本导入 Oracle数据库 比如 在windows 系统下,可以写一个 bat 来实现直接导入 如:bat 中的内容如下,logs.log 将会记录执行日志 sqlplus user ...

  9. oracle+循环插入sql,SQL server,Oracle循环插入百万数据

    SQL server,Oracle循环插入百万数据 SQL server,Oracle循环插入百万数据 压测时常需要往数据库插入大量数据,下面是我往两个数据库插入数据时用的脚本 declare @ma ...

最新文章

  1. Elasticsearch: Five Things I was Doing Wrong
  2. 见贤思齐焉,见不贤而内自省也
  3. BFS(广度优先搜索算法)
  4. photoshop的页面制作练习1
  5. swift 过滤字符串_使用Swift提取字符串中的最后一个单词
  6. pairs(HDU-5178)
  7. VueGoogleMaps在vue中的使用
  8. 基于 XGBoost 对 Santander 银行用户购买行为进行预测
  9. Axis2联接WCF(比较完整的版本)
  10. Windows10更新提示语言不同不能保留程序和设置
  11. mongodb lbs java_Spring-MongoDB与LBS
  12. iOS常用宏定义总结 --Objective-C
  13. Java贪吃蛇小游戏
  14. 网易云音乐java爬虫_用Java实现网易云音乐爬虫
  15. ghost 通过docker安装
  16. scratch作品_孩子的scratch作品只能演示?教你把它三步变为电脑软件
  17. 文本如何垂直居中?多行文本如何实现上下居中?
  18. 目的网络、子网掩码、下一跳例子
  19. 仿淘宝的详情页图片切换
  20. 十六进制字符串与byte数组与ASCII码互相转换

热门文章

  1. python-45-ajax数据序列化
  2. Linux下Socket网络编程send和recv使用注意事项
  3. STM32开发笔记之——CMSIS DAP
  4. JS在与lua的交互心得
  5. 【软件工程实践 · 团队项目】 第一次作业
  6. 【转】Mysql索引最左匹配原则理解
  7. thymeleaf的url属性
  8. WCF并发连接数的问题
  9. JavaScript学习——判断数据类型总结(转)
  10. 软件工程小组第六次会议记录