Posso usar CASE
para escolher quais colunas serão exibidas 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 executar uma UPDATE
consulta no Postgres (por exemplo, escolher quais colunas devem ser atualizadas)? Presumo que não, porque 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 a CASE
para determinar se o valor da coluna deve receber um novo valor ou simplesmente reatribuir o valor existente valor). Se não houver uma alternativa fácil, é claro que também aceitarei isso como resposta.
Informações adicionais : 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 variará, pode ser de dezenas ou centenas. Acredito que existem índices para as condições de união.