java merge是什么,让我们一起了解一下?
merge是实现将两个Dataframe根据一些共有的列连接起来,其操作非常类似sql里面的join,在实际场景中,这些共有列一般是Id,连接方式也丰富多样,可以选择inner(默认),left,right,outer这几种模式,分别对应的是内连接,左连接,右连接。
那么merge是如何使用的?
举例说明:有一个表T,有两个字段a、b,我们想在表T中做Insert/Update,如果条件满足,则更新T中b的值,否则在T中插入一条记录。在Microsoft的SQL语法中,很简单的一句判断就可以了,SQL Server中的语法如下:
if exists(select 1 from T where T.a='1001' ) update T set T.b=2 Where T.a='1001' else insert into T(a,b) values('1001',2);
但是很明显这个语法对于SQL只能更改一条语句,并且Oracle不能使用,所以就有了Merge into(Oracle 9i引入的功能)语法 。
merge into 目标表 a using 源表 b on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) when matched then update set a.字段=b.字段 --目标表别称a和源表别称b都不要省略 when not matched then insert (a.字段1,a.字段2……)values(b.字段1,b.字段2……)
在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中"源表"的记录数。
以上就是小编今天的分享了,希望可以帮助到大家。