oracle多表插入模式:
insert all|first
when ...
then into ...
else into...
select ...
from ...
group by...;
all与first的区别:
all是指,当检测到第一个条件成立,如果满足第二个条件会依然进行匹配。
也就是说,当满足第一个条件的数据被匹配到,则依然可以被第二个条件匹配。
first是指,当检查到第一个条件成立,则不继续检查其它条件是否成立。
就是说,当满足第一个条件的数据被匹配到,则不再被第二个条件匹配
例如:
a b
a c
当第一个条件匹配a ,第二个条件匹配b 如果用first,则第二个条件不能匹配到任何数据。
如果用all,则第二个条件可以匹配到第一条数据。
通俗的讲:first就是你死我活,all就是你中有我,我中有你。