SQL中MERGE的用法

2022-08-14 12:33:13 字數 1181 閱讀 4768

merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍:」根據與源表聯接的結果,對目標表執行插入、更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入、更新或刪除行,可以對兩個表進行同步。」,通過這個描述,我們可以看出merge是關於對於兩個表之間的資料進行操作的。

可以想象出,需要使用merge的場景比如:

merge into語法如下:

merge intotable_name alias1

using(table|view|sub_query) alias2

on(join condition)

when matched then

update

setcol1 = col1_val1,

col2 = col2_val2

when not matched then

insert(column_list)values(column_values);

其中,table_name 指的是更新的表,using()裡邊的指的是資料**表/檢視/子查詢結果集,condition指的是連線條件,如果滿足連線條件,set 欄位1=值1,欄位2=值2..

例項如下:

merge into gdps_memberbank c

using dual

on (c.cltno= #cltno#)

when matched then

update

set c.mb_flag=mb_flag

where c.cltno=#cltno#

when not matched then

insert(cltno,mb_flag)

values (#cltno#,#mb_flag#)

在gdp_memberbank目標表和dual源表中查詢cltno是否用相同欄位的資訊,有的話執行update,沒有的話執行insert;

SQL中Merge的用法

merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍 根據與源表聯接的結果,對目標表執行插入 更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入 更新或...

SQL中Merge的用法

merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍 根據與源表聯接的結果,對目標表執行插入 更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入 更新或...

SQL中Merge的用法

merge關鍵字是乙個神奇的dml關鍵字。它在sql server 2008被引入,它能將insert,update,delete簡單的並為一句。msdn對於merge的解釋非常的短小精悍 根據與源表聯接的結果,對目標表執行插入 更新或刪除操作。例如,根據在另乙個表中找到的差異在乙個表中插入 更新或...