Mergeusing搭配用于特别是BI上数据统计和分析上 比如要求子表中没有的数据那么父表中就要删除对应的数据 保证子表和父表的数据对应 如果按照常规的做法是 跑个作业然后通过游标/表值函数/临时表等等循环的获取数据然后更新父表  这样是很浪费效率的  这时Merge派上用场了

原始数据:

select * from chartinfo;

select * from UserInfo;

MERGE INTO UserInfo uUSING chartinfo cON u.UserId = c.UserIdWHEN MATCHED AND u.UserName = c.UserName      THEN UPDATE SET u.lastUpdate = c.LastUpdateWHEN NOT MATCHED --为not matched时不能为update(没有匹配成功 当然不能update了)      THEN INSERT(UserName, Sex) VALUES( 'ZhangZhao', 'b' );

 

使用Merge查询之后:

select * from chartinfo;

select * from UserInfo;