Oracle 21c – merge into

如果要對某一個表根據某些條件判斷進行 Update or Insert 這個情況,一般最笨的作法是透過 程式進行判斷決定要 Update or Insert ,然而 Oracle 9i 新增了一個語法用於合併UPDATE和INSERT語句。透過MERGE語句,根據一張表或子查詢的連接條件對另外一張表進行查詢,連線條件比對上的進行UPDATE,無法比對的執行INSERT。這個語法只要一次全表掃描就完成了全部工作,執行效率要高於INSERT+UPDATE。

語法

參考 : Link

練習範例

當您想在 Oracle 資料庫中使用 MERGE 語句來合併資料時,通常會先建立兩個表格,一個作為目標表格,另一個作為源表格。以下是一個完整的範例,包括建立表格、插入資料、以及使用 MERGE 語句來進行合併操作 ( db 安裝可以參考 link )

1. 在建立目標表格

2. 插入資料到目標表格

3. 建立源表格

4. 插入資料到源表格

5. 使用 Merge into 語句合併資料

6. 查詢結果

執行上述 SQL 語句後,target_table 的內容應該如下:

IDNAMEVALUE
1Alice10
2Bob25
3Charlie35
4David40
這個範例說明了如何使用 MERGE 語句將來自 source_table 的資料合併到 target_table,當 id 匹配時更新目標表格中的資料,當 id 不匹配時插入新資料。