Я могу использовать, CASE
чтобы выбрать столбцы для отображения в SELECT
запросе (Postgres), например так:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
Возможно ли вообще что-то подобное при выполнении UPDATE
запроса в Postgres (то есть выбрать, какие столбцы следует обновить)? Я предполагаю, что нет, так как я ничего не мог найти по этому поводу, но, возможно, у кого-то есть разумная альтернатива (помимо использования процедуры или обновления каждого столбца с помощью, CASE
чтобы определить, следует ли присвоить значению столбца новое значение или просто переназначить существующее значение). Если нет легкой альтернативы, я, конечно, тоже приму это как ответ.
Дополнительная информация : в моем случае у меня есть 14 потенциальных столбцов, которые могут быть обновлены, при этом обновляется только один столбец для соответствующей строки (обновляемая таблица объединяется с другим в запросе). Количество строк для обновления, скорее всего, будет варьироваться, может быть десятки или сотни. Я считаю, что для условий присоединения имеются индексы.