我花了一些时间寻找,但找不到一个可以满足我要完成的任务的答案。
我想根据table1
中的某些条件在table2
中插入一些明确声明的值
逻辑如下:
INSERT INTO table1(col1, col2, col3)
VALUES(value1, value2, value3)
ONLY IF (SELECT attribute from table2 WHERE id=1) NOT LIKE 'A')
我需要显式插入值,而不是从其他表插入INSERT SELECT
。真的很感激。
答案 0 :(得分:3)
已编辑,已根据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'