IT科技

當前位置 /首頁/IT科技 > /列表

merge,java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

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'elseinsert into T(a,b) values('1001',2);

java merge

但是很明顯這個語法對於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語句中"源表"的記錄數。

TAG標籤:java merge #