我已查看this問題,該問題涉及更新一個查詢中的多個記錄。SQL - 使用複合鍵在一個查詢中更新多個記錄
一般的解決方法是
UPDATE table_name
SET field_to_update = CASE table_key
WHEN key_value1 THEN field_value1
WHEN key_value2 THEN feild_value2
ELSE feild_to_update
END
WHERE table_key IN(key_value1 , key_value2);
我的問題是,誰可以在此進行調整,以配合組合鍵。說我是否有列
(id_1, id_2, column_to_update)
其中id_1和id_2形成一個複合主鍵。
我的問題變得更簡單了,其中一個id列對於特定查詢將是常量。
例如,我需要沿着
UPDATE table_name
SET field_to_update = CASE (key1, key2)
WHEN (1,1) THEN field_value1
WHEN (2,1) THEN feild_value2
ELSE feild_to_update
END
WHERE (key1, key2) IN ((1, 1) , (2, 1));
誰能幫助請線條的東西嗎?
情況下覆蓋只允許上操作,如果你在你的情況下,使用一個元組像你有錯誤「操作數應包含1列(S)」,因爲是2個操作數 – scaisEdge
是的,我知道,但我只是想通過我想要做的事情。即使它需要完全不同的語法,我不介意。 –
有'CASE'的替代形式; 'CASE WHEN [condition] THEN [blah] WHEN [condition2] THEN [blah2] .... ELSE .... END'。 – Uueerdo