mybatis 动态sql merge into

<insert id="mergeInfo" parameterType="xxx.xxx.xxx">
	merge into table1 t1
	<trim prefix="using ( select " suffix=" from dual ) t2" suffixOverrides=",">
		<if test="VC_ORG_ID != null>
			#{VC_ORG_ID,jdbcType=VARCHAR} VC_ORG_ID,
		</if>
		<if test="VC_PRICE!= null>
			#{VC_PRICE,jdbcType=NUMERIC} VC_PRICE,
		</if>
	</trim>
	ON (
	<trim prefixOverrides="AND">
		<if test="VC_ORG_ID != null>
			t1.VC_ORG_ID = t2.VC_ORG_ID
		</if>
	</trim>
	)
	WHEN MATCHED THEN
	UPDATE SET
	<trim suffixOverrides=",">
		<if test="VC_PRICE!= null>
			t1.VC_PRICE = #{VC_PRICE,jdbcType=NUMERIC},
		</if>
	</trim>
	WHEN NOT MATCHED THEN
	<trim prefix="insert (" suffix=")" suffixOverrides=",">
		<if test="VC_ORG_ID != null>
			VC_ORG_ID,
		</if>
		<if test="VC_PRICE!= null>
			VC_PRICE,
		</if>
	</trim>
	<trim prefix="values (" suffix=")" suffixOverrides=",">
		<if test="VC_ORG_ID != null>
			#{VC_ORG_ID ,jdbcType=VARCHAR},
		</if>
		<if test="VC_PRICE!= null>
			#{VC_PRICE,jdbcType=NUMERIC},
		</if>
	</trim>
</insert>

Oracle merge into 的用法详解【整理】

动态 SQL

发布了43 篇原创文章 · 获赞 0 · 访问量 884

猜你喜欢

转载自blog.csdn.net/weixin_37562241/article/details/104540842