sql - Oracle 多表插入语法?

标签 sql oracle sql-insert

我第一次了解 Oracle 的多表插入(总体来说我对 SQL 相当陌生),并且我不太了解 SELECT 的目的/需求声明结束。

对于单表 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;

最佳答案

选择用于确定 WHEN prod_category='B' THEN 中使用的变量 prod_category 的值

关于sql - Oracle 多表插入语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21817181/

相关文章:

mysql - 当日期字段包含特定小时/分钟时 SQL 更新日期字段

c# - 如何将 PropertyBag 类存储到数据库中

php - MySQL 错误 : You have an error in your SQL syntax

sql - 在 mysql 数据库中选择 1 或 0 时出现问题

java - 数据迁移时出现空值问题?

mysql - 按与唯一值对应的值更新列会导致子查询返回多于 1 行

SQL获取条件为oracle中两列组合的数据

java - Listagg函数和ORA-01489 : result of string concatenation is too long

mySQL - 将值插入单列会导致多行吗?

MYSQL:将一个值插入新表,同时从旧表中删除它?