我花了一些时间寻找,但找不到一个满足我想要完成的答案。
我想根据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'