Eu posso usar CASE
para escolher quais colunas exibir em uma SELECT
consulta (Postgres), assim:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
É possível algo semelhante ao realizar uma UPDATE
consulta no Postgres (ou seja, escolher quais colunas devem ser atualizadas)? Presumo que não, pois não consegui encontrar nada sobre isso, mas talvez alguém tenha uma alternativa inteligente (além de usar um procedimento ou atualizar cada coluna usando um CASE
para determinar se o valor da coluna deve ser atribuído um novo valor ou simplesmente reatribuido o valor existente valor). Se não houver uma alternativa fácil, é claro que também a aceitarei como resposta.
Informações extras : No meu caso, tenho 14 colunas em potencial que podem ser atualizadas, com apenas uma sendo atualizada por linha correspondente (a tabela a ser atualizada é unida a outra na consulta). A quantidade de linhas a serem atualizadas provavelmente varia, pode ser dezenas ou centenas. Acredito que existam índices para as condições de adesão.