1.用union all拼接 INSERT INTO 表名(字段1,字段2,字段3) <foreach collection="selectedList" item="item" index="index" separator=" union all "> SELECT #{item.字段1},#{item.字段2},#{item.字段3} FROM dual </foreach>
2.存在主键是序列的写法
INSERT INTO 表名(序列主键,字段1,字段2,字段3)(ID,HOSP_ID,EXAM_SET_CODE,UNIT_ID,FEE_PROJECT_ID,CREATE_TIME,PRICE,DISCOUNT,AMOUNT,SORT_ID) select 序列名.nextVal, a.* from( <foreach collection="selectedList" item="item" index="index" separator=" union all "> SELECT #{item.字段1},#{item.字段2},#{item.字段3} FROM dual </foreach> ) a
3.用in 拼接
select 字段1 from 表名 where 1=1 AND 条件1 in <foreach collection="codeArr" item="code" index="index" open="(" close=")" separator=","> #{code} </foreach>
注:
item表示集合中每一个元素进行迭代时的别名;
index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置;
open表示该语句以什么开始;
separator表示在每次进行迭代之间以什么符号作为分隔符;
close表示以什么结束;
collection中存放的值为array、list。