合并数据
1.目标表table1结构及数据如下:
O与A为复合主键
O A V
球 红 56
球 黄 56
输入表table2结构及数据如下:
O与A为复合主键
O A V
球 红 78
球 黄 0
球 蓝 8
请用一条merge语句合并两张表,当输入V为0的数据表示要删除table1中对应数据,最终结构是在table1表中的数据为:
O A V
球 红 78
球 蓝 8
求大神解答,谢谢!!! ------解决方案--------------------
MERGE INTO T1
USING T2
ON (T1.O = T2.O AND T1.A = T2.A)
WHEN MATCHED THEN
UPDATE SET T1.V = T2.V DELETE WHERE T2.V = 0
WHEN NOT MATCHED THEN
INSERT (T1.O,T1.A,T1.V) VALUES(T2.O,T2.A,T2.V)
------解决方案-------------------- merge into table1 t
using table2 t1
on(t.o=t1.o and t.a=t1.a)
when matched then
update set t.v=t1.v delete where t1.v=0
when not matched then
insert values(t1.o,t1.a,t1.v);