在 SQL 中另一个表中的某个条件下插入显式声明的值



我花了一些时间寻找,但找不到一个满足我想要完成的答案。

我想根据table2中的某些条件将一些明确声明的值插入table1

逻辑如下:

INSERT INTO table1(col1, col2, col3)
VALUES(value1, value2, value3)
ONLY IF (SELECT attribute from table2 WHERE id=1) NOT LIKE 'A')

我需要显式插入值,而不是从其他表中INSERT SELECT值。真的很感激。

根据OP的澄清进行了编辑

insert into table1(col1, col2, col3)
select value1, value2, value3
from   dual
where  (select attribute from table2 where id = 1) != 'A'; 

这假设table1正好有一行id = 1,并且attribute不是null。对于稍微一般的情况,其中可能没有带有id = 1的行,或者有一个这样的行但属性可以null,您可以像这样编写where条件:

where nvl( (select attribute from table2 where id = 1), 'B' ) != 'A'

最新更新