首先创建两张表,如下图:
[img]http://dl.iteye.com/upload/attachment/0061/8461/63d6ff16-da8a-3b2a-9d19-67cd88458c3b.jpg[/img][img]http://dl.iteye.com/upload/attachment/0061/8463/38e8bbc6-f340-369f-9dd3-a0952f3f388d.jpg[/img]
表的字段类型为name varchar2(20),money number
我们要解决的问题是从t1表更新数据到t2表,如果t2表name字段的记录在t1表中存在,就讲money字段的值累加,如果不存在,将t1表的记录插入到t2表中。按照一般的逻辑思路,该需求至少需要update和insert两条sql才能完成,如果要判断逻辑就很麻烦了,merge语句的出现就是为了解决此类问题的,使用merge语句可以实现“存在则更新,不存在则insert”的逻辑。
[img]http://dl.iteye.com/upload/attachment/0061/8461/63d6ff16-da8a-3b2a-9d19-67cd88458c3b.jpg[/img][img]http://dl.iteye.com/upload/attachment/0061/8463/38e8bbc6-f340-369f-9dd3-a0952f3f388d.jpg[/img]
表的字段类型为name varchar2(20),money number
我们要解决的问题是从t1表更新数据到t2表,如果t2表name字段的记录在t1表中存在,就讲money字段的值累加,如果不存在,将t1表的记录插入到t2表中。按照一般的逻辑思路,该需求至少需要update和insert两条sql才能完成,如果要判断逻辑就很麻烦了,merge语句的出现就是为了解决此类问题的,使用merge语句可以实现“存在则更新,不存在则insert”的逻辑。