0
我有一張表,我想檢查是否存在記錄,如果不插入新行並更新上一行,請保留它。我想知道如果我可以在下面使用合併嗎?與相同的目標和源表合併
CREATE TABLE a
(keycol INT PRIMARY KEY,
col1 INT NOT NULL,
col2 INT NOT NULL,
col3 INT NOT NULL);
INSERT INTO a VALUES (1,0,0,0),(2,0,0,0);
MERGE INTO a
USING select 1 from a where col1 = 3
WHEN NOT MATCHED THEN
UPDATE SET
col2 = 2,
col2 = 2,
col3 = 2
where col1 = 3
WHEN NOT MATCHED THEN
INSERT (keycol, col1, col2, col3)
VALUES (4, 0, 0, 0)
感謝,
應該是第一個條件是'WHEN MATCHED' - 當'NOT MATCHED'你不會有連續更新和需要插入 – JNK 2012-02-07 15:08:35
請仔細閱讀問題,沒事的時候匹配我想插入和更新 – user570715 2012-02-07 15:13:46
我確實讀過它,而您提出的解決方案是無稽之談。當沒有匹配時,你想更新**什麼**?沒有要更新的行。你想更新表中的每一行? – JNK 2012-02-07 15:14:57