EG:
INSERT ALL WHEN T.COL1 = 1 AND T.COL2 > 100 THEN --条件子句1 INTO TABLE_A WHEN T.COL1 = 2 AND T.COL2 > 102 THEN --条件子句2 INTO TABLE_B SELECT * FROM TEST T
分析:INSERT ALL 在执行的时候,会把满足条件子句1的记录INSERT到TABLE_A;
满足条件子句2的记录INSERT到TABLE_B;
SO:既满足条件子句1又满足条件子句2的记录,既要INSERT到TABLE_A,又要INSERT到TABLE_B;
INSERT FIRST WHEN T.COL1 = 1 AND T.COL2 > 100 THEN --条件子句1 INTO TABLE_A WHEN T.COL1 = 2 AND T.COL2 > 102 THEN --条件子句2 INTO TABLE_B SELECT * FROM TEST T
分析:INSERT FIRST 在执行的时候,如果一条记录满足条件子句1,那么就将该记录INSERT到TABLE_A,然后去校验下一条记录。如果不满足条件子句1,那么再去比较条件子句2,满足条件子句2则INSERT到TABLE_B,不满足则不做处理。
SO: 既满足条件子句1,又满足条件子句2的记录INSERT到TABLE_A.