方法一:
Oracle 使用 MERGE INTO 高效方法:
eg: 有一个table QQ 三个字段 a,b,c 。一条新记录比较 a,b两个字段。如有记录则update,无则insert
MERGE INTO QQ T1
USING (SELECT ‘aa’ AS a ,‘bb’ AS b,‘cc’ as c FROM dual) T2
ON ( T1.a=T2.a and T1.b=T2.b)
WHEN MATCHED THEN
UPDATE set T1.c= T2.c
WHEN NOT MATCHED THEN
insert ('id',a, b, c ,'state' ) values ('001','aa','bb','cc','2')
::1、将aa,bb,cc三个数据给到临时表dual中三个字段,再与原表中进行条件查询
2、除绿色字体表示值,其他地方都是字段名.只需要替换这个几个值即可
方法二:
if exists(select 1 from QQ where QQ.a='aa' and b='bb' ) update QQ set QQ.c='cc' Where QQ.a='aa' and QQ.b='bb' else insert into QQ(a,b,c) values('aa','bb','cc');
方法一的效率要高!!!!!!!!!!