嵌入方式如下。
INSERT INTO target_table (col1, col2, col3)
SELECT col1
col2
col3
FROM source_table
WHERE condition
其中的select可以使用單表,也可以使用多表,分別舉例説明如下。
1、 select中使用單表查詢
下面了演示如何使用insert into select語句,首先創建一個名為sales的表。
CREATE TABLE sales (
customer_id NUMBER
product_id NUMBER
order_DAte DATE NOT NULL
total NUMBER(9,2) DEFAULT 0 NOT NULL
PRIMARY KEY(customer_id
product_id
order_date)
)
以下語句將orders和order_items表中的銷售摘要插入到sales表中,參考以下實現語句 -
INSERT INTO sales(customer_id, product_id, order_date, total)
SELECT customer_id
product_id
order_date
SUM(quantity * unit_price) amount
FROM orders
INNER JOIN order_items USING(order_id)
WHERE status = 'Shipped'
GROUP BY customer_id
product_id
order_date
2、 select中使用多表查詢
假設只想將2017年的銷售摘要數據複製到新表中。 為此,創建一個名為sales_2017的新表,使用Oracle INSERT INTO SELECT和WHERE子句將2017年的銷售數據複製到sales_2017表中:
INSERT INTO sales_2017
SELECT customer_id
product_id
order_date
SUM(quantity * unit_price) amount
FROM orders
INNER JOIN order_items USING(order_id)
WHERE status = 'Shipped' AND EXTRACT(year from order_date) = 2017
GROUP BY customer_id
product_id
order_date