使用Where条件插入oracle表

时间:2017-12-15 19:56:21

标签: oracle oracle11g sql-insert

我是新手在oracle中编写查询。我想使用另一个表的where where

在表中插入一行

例如:我有两个表:Table1和Table2

insert into table1 (col1, col2, col3) values ('1', '2', '3') 
            where exists (select * from table2 where col2 = '2')

我可以这样查询吗?有任何语法错误,请纠正我。基本上,如果table2有一行col2 = '2',我想在表1中插入一行。

任何帮助将不胜感激!在此先感谢!!

2 个答案:

答案 0 :(得分:0)

建议的方法会导致语法错误。

适合以这种方式使用(为此目的):

insert into table1 (col2)
select col2 from table2 where col2 = '2';

insert into table1 (col1,col2,col3)
select col1,col2,col3 from table2 where col2 = '2';

或者可能(取决于第二张表的数据)

insert into table1 (col1,col2,col3)
select col1,col2,col3 from table2 where (col1,col2,col3) in ('1','2','3');

如果两个表至少包含这些列(col1,col2,col3)。

答案 1 :(得分:0)

目前还不清楚您是否只需要比较col2 TABLE2是否为'2',或者您希望col2的{​​{1}}与用于插入的TABLE2的值。

如果它只是大约COL2,你可以使用它。

'2'

如果一般约为INSERT INTO TABLE2(col1,col2,col3) select '1', '2', '3' FROM DUAL WHERE EXISTS ( select 1 FROM TABLE2 WHERE col2 = '2' ); ,那么您可以使用:

col2

DEMO