java merge是什么,讓我們一起了解一下?
merge是實(shí)現(xiàn)將兩個Dataframe根據(jù)一些共有的列連接起來,其操作非常類似sql里面的join,在實(shí)際場景中,這些共有列一般是Id,連接方式也豐富多樣,可以選擇inner(默認(rèn)),left,right,outer這幾種模式,分別對應(yīng)的是內(nèi)連接,左連接,右連接。
那么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?目標(biāo)表?a ? using?源表?b ? on(a.條件字段1=b.條件字段1?and?a.條件字段2=b.條件字段2?……)?? ? when?matched?then?update?set?a.字段=b.字段?--目標(biāo)表別稱a和源表別稱b都不要省略 ? when??not?matched?then?insert?(a.字段1,a.字段2……)values(b.字段1,b.字段2……)
在一個同時存在Insert和Update語法的Merge語句中,總共Insert/Update的記錄數(shù),就是Using語句中"源表"的記錄數(shù)。
以上就是小編今天的分享了,希望可以幫助到大家。