java merge

作者:原创时间:2022-04-02
文档

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语句中"源表"的记录数。

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java method java mian java mina java mkdir java mmap java mockito java modelandview java module java monad java mono java mqtt java multiset java mvvm java mybatisplus java namespace java newinstance java nextint java nextline java nexus java nfs java memcpy java matrix java matlab java math.ceil java mapping java malloc java main java logstash java logging java localtime java locale java list.contains java list.add java linq java linklist java leveldb java lamada java kudu java kmeans java keystore