如何在sql导航器中使用多个插入

时间:2013-12-18 08:59:27

标签: sql oracle

我是sql的新手,我正在尝试为每天使用简单的插入使用, 我有一个表(矩阵),保存3个变量之间的连接, 在大多数情况下,我必须插入或更新矩阵,但每个插入因为矩阵而成倍增加,我做了一个简单的例子:

SELECT * FROM table_name
where col1='A'
and col2 in ('1G','2F','3Q')
and col3 ='B'
/
INSERT INTO table_name VALUES('A','1G','B');
INSERT INTO table_name VALUES('A','2F','B');
INSERT INTO table_name VALUES('A','3Q','B');

输出表将是

A   1G  B
A   2F  B
A   3Q  B

在更复杂的情况下

SELECT * FROM table_name
where col1='A'
and col2 in ('1G','2F','3Q')
and col3 in ('B','C')
/
INSERT INTO table_name VALUES('A','1G','B');
INSERT INTO table_name VALUES('A','2F','B');
INSERT INTO table_name VALUES('A','3Q','B');
INSERT INTO table_name VALUES('A','1G','C');
INSERT INTO table_name VALUES('A','2F','C');
INSERT INTO table_name VALUES('A','3Q','C'); 

输出表将是

A   1G  B
A   2F  B
A   3Q  B
A   1G  C
A   2F  C
A   3Q  C

有没有办法使插件看起来像这样或具有类似的功能 例如A:

INSERT INTO table_name VALUES('A',in ('1G',2F','3Q'),'B');

,例如b:

INSERT INTO table_name VALUES('A',in ('1G',2F','3Q'),in ('B','C'));

由于矩阵

,我通常在每列中使用大约100个新值

1 个答案:

答案 0 :(得分:1)

您可以组合使用select和insert语句。例如:

INSERT INTO table_name (col1, col2, col3)
SELECT col1, col2, col3
FROM table_x
WHERE col1='A'
AND col2 in ('1G','2F','3Q')
AND col3 ='B'

要做到这一点,table_x将需要包含您想要的所有值。如果你想要一种方法来编写一个使用常量在行中构建值的“表”的插入语句,那么你不能这样做。