1. 程式人生 > >oracle資料庫insert all 和 insert first用法和區別

oracle資料庫insert all 和 insert first用法和區別

create table small_customers(customer_id number,sum_orders number);//小型客戶表
create table medium_customers(customer_id number,sum_orders number);//中興客戶表
create table large_customers(customer_id number,sum_orders number);//大型客戶表
create table orders(customer_id number,order_total number);//客戶訂單表
 insert into orders values(1,200);
 insert into orders values(1,400);
  insert into orders values(2,50000);
  insert into orders values(2,80000);
 insert into orders values(3,200000);
  insert into orders values(3,2000);//訂單表新增資料
  select customer_id,sum(order_total) from orders group by customer_id//返回每個客戶的消費總額
 
insert  first
when sum_orders<=150000 then into small_customers
when sum_orders between 10000 and 200000 then into medium_customers
else into large_customers
select customer_id,sum(order_total) sum_orders from orders group by customer_id

//根據每個客戶消費金額的區間分別區分改客戶是小/中/大型客戶分別插入到小型/中型/大型客戶表裡面

(first首先檢查前一個條件是否滿足,如果第一個條件滿足則不會插入第一個表裡面重復的資料)

insert  all
when sum_orders<=150000 then into small_customers
when sum_orders between 10000 and 200000 then into medium_customers
else into large_customers
select customer_id,sum(order_total) sum_orders from orders group by customer_id

(不分先後順序只要滿足條件就執行操作)

select * from small_customers
delete from small_customers
select * from medium_customers
delete from medium_customers
select * from large_customers
delete from large_customers