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