Я рассмотрел вопрос, который касается обновления нескольких записей в одном запросе.SQL - Обновление нескольких записей в одном запросе с помощью Composite Key
Общее решение
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 столбец (ы)», потому что есть 2 операнда – scaisEdge
Да, я знаю, но я просто хотел понять, что я хочу сделать. Даже это требует совершенно другого синтаксиса, я не против. –
Существует альтернативная форма 'CASE'; 'CASE WHEN [состояние] THEN [blah] WHEN [состояние2] THEN [blah2] .... ELSE .... END'. – Uueerdo