Oracle INSERT 语句
来源:互联网 发布:java poijar包 编辑:程序博客网 时间:2024/05/29 16:18
-- Start
方法1
我估计有点 SQL 基础的人都会写 INSERT 语句。下面是 SQL 标准写法。
INSERT INTO employees (employee_id, name) VALUES (1, 'Zhangsan');INSERT INTO employees VALUES (1, 'Shangbo');
方法2
其实, Oracle 还支持下面的写法,作用和上面的语句完全相同。
INSERT INTO (SELECT employee_id, name FROM employees) VALUES (2, 'Lisi');
方法3
此外,同其他数据库一样,Oracle 也支持下面这种写法。
INSERT INTO employeesSELECT 3, 'Wangwu' FROM DUAL;
方法4
下面这种写法可以实现列转行,如我们有下面的表存储原始数据,原始数据可能从文件中来。
create table sales_input_table (prod_id number(9,0),amt_mon number(9,6),amt_tue number(9,6),amt_wed number(9,6),amt_thu number(9,6),amt_fri number(9,6));insert into sales_input_table values (1, 100.0, 200.0, 300.0, 400.0, 500.0);
下面我们通过一个 SQL 把上面的数据插入到下面的表中实现列转行。
CREATE TABLE sales (prod_id number(9,0),time_id date,amount number(9,0));INSERT ALLINTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE, amt_mon)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 1, amt_tue)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 2, amt_wed)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 3, amt_thu)INTO sales (prod_id, time_id, amount) VALUES (prod_id, CURRENT_DATE + 4, amt_fri)SELECT prod_id, amt_mon, amt_tue, amt_wed, amt_thu, amt_fri FROM sales_input_table;
方法5
下面这种写法可以帮我们一次性把一个表中的数据倒入到多个表中,否则我们必须写多条 SQL 实现同样的功能。
INSERT ALLWHEN order_total <= 100000 THENINTO small_ordersWHEN order_total > 100000 AND order_total <= 200000 THENINTO medium_ordersWHEN order_total = 500000 THENINTO special_ordersWHEN order_total > 200000 THENINTO large_ordersELSEINTO large_ordersSELECT order_id, order_total, sales_rep_id, customer_id FROM orders;
注意,当 order_total 大于 200000 时,orders 会被插入到 large_orders 和 special_orders 中。这可能不是你想要的结果,如果你只想让 orders 插入到 special_orders 表中,你只需要把 ALL 替换成 FIRST, 如下。
INSERT FIRSTWHEN order_total <= 100000 THENINTO small_ordersWHEN order_total > 100000 AND order_total <= 200000 THENINTO medium_ordersWHEN order_total = 500000 THENINTO special_ordersWHEN order_total > 200000 THENINTO large_ordersELSEINTO large_ordersSELECT order_id, order_total, sales_rep_id, customer_id FROM orders;
--更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last edited on 2015-06-18
-- Created by ShangBo on 2015-06-17
-- End
0 0
- INSERT 语句 ORACLE / MSSQL
- oracle中的insert语句
- oracle中的insert语句
- oracle insert select语句
- Oracle INSERT 语句
- Oracle INSERT 语句
- oracle拼接insert语句
- Oracle 插入insert语句
- oracle中的insert语句(转)
- Oracle-Insert all语句学习
- Oracle insert all语句介绍
- Oracle INSERT ALL 语句介绍
- Oracle insert all语句介绍
- ORACLE insert 语句中的sql injection
- Insert 语句中同时带查询(Oracle)
- oracle中合并insert、update语句
- Oracle的INSERT ALL和MERGE语句
- Oracle时间型数据的insert语句
- uva 122
- LeetCode—Remove Linked List Elements—C++
- php的事件处理机制(回调函数)
- conn 配置
- JSON再研究
- Oracle INSERT 语句
- 最大连续子序列
- virsh console
- Longest Substring Without Repeating Character
- LSM树由来、设计思想以及应用到HBase的索引
- 2015061703 - mysql数据类型整理
- 第009讲 初识css 类选择器 id选择器 html选择器
- 如何敲代码
- CloseHandle()函数的使用