2014-02-16 70 views
2

我在第一次看到Oracle的多表插入(我對SQL總體上比較陌生),而且我並不完全理解在聲明結尾SELECT的目的/需求。Oracle多表插入語法?

對於單表INSERT,我的理解是使用VALUES子句或子查詢,但不能同時使用這兩個。有人可以在這個INSERT聲明末尾解釋SELECT條款的重要性嗎?我在網上看過,但我還沒有找到明確的答案。

INSERT ALL 
WHEN prod_category='B' THEN 
INTO book_sales(prod_id,cust_id,qty_sold,amt_sold) 
VALUES(product_id,customer_id,sale_qty,sale_price) 
WHEN prod_category='V' THEN 
INTO video_sales(prod_id,cust_id,qty_sold,amt_sold) 
VALUES(product_id,customer_id,sale_qty,sale_price) 
WHEN prod_category='A' THEN 
INTO audio_sales(prod_id,cust_id,qty_sold,amt_sold) 
VALUES(product_id,customer_id,sale_qty,sale_price) 
SELECT prod_category ,product_id ,customer_id ,sale_qty, sale_price 
FROM sales_detail; 
+1

使用的可變prod_category的值閱讀選擇第一:從表1選擇的x,y。對於每一行,當x ='Foo'時,插入到table2中,當x ='Bar'時,然後插入到table3中等等... – tbone

回答

2

的選擇被用來確定在WHEN prod_category='B' THEN