前幾天有示範 SQL Server 多筆 Upsert 語法
,今天換 Oracle 了。
範例資料表:
多筆大量 Upsert 語法:
範例資料表:
create table users
(
user_id int not null,
user_name nvarchar(100) not null,
)
多筆大量 Upsert 語法:
MERGE INTO users t
USING (
SELECT 1 AS USER_ID, '小明' AS USER_NAME FROM DUAL UNION ALL
SELECT 2 AS USER_ID, '老王1' AS USER_NAME FROM DUAL UNION ALL
SELECT 3 AS USER_ID, '大華2' AS USER_NAME FROM DUAL UNION ALL
SELECT 4 AS USER_ID, '小花3' AS USER_NAME FROM DUAL UNION ALL
SELECT 5 AS USER_ID, '阿婷' AS USER_NAME FROM DUAL UNION ALL
SELECT 6 AS USER_ID, '小新' AS USER_NAME FROM DUAL UNION ALL
SELECT 7 AS USER_ID, '小琪' AS USER_NAME FROM DUAL
) s
ON (t.USER_ID = s.USER_ID) -- 比對欄位(可以使用 and 連接多個)
WHEN MATCHED THEN -- 如果有找到相同則更新
UPDATE SET t.USER_NAME = s.USER_NAME
WHEN NOT MATCHED THEN -- 如果沒有找到主鍵相同則新增
INSERT (USER_ID, USER_NAME)
VALUES (s.USER_ID, s.USER_NAME);
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com