oracleinsert忽略转义

如题所述

第1个回答  2022-11-04
嵌入方式如下。

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;