Posso usare CASE
per scegliere quali colonne visualizzare in una SELECT
query (Postgres), in questo modo:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
È possibile fare qualcosa di simile quando si esegue una UPDATE
query in Postgres (ovvero scegliere quali colonne devono essere aggiornate)? Presumo non dal momento che non sono riuscito a trovare nulla al riguardo, ma forse qualcuno ha un'alternativa intelligente (oltre a utilizzare una procedura o aggiornare ogni colonna utilizzando a CASE
per determinare se al valore della colonna debba essere assegnato un nuovo valore o semplicemente riassegnato quello esistente valore). Se non ci sono alternative facili, ovviamente accetterò anche quella come risposta.
Informazioni extra : Nel mio caso ho 14 potenziali colonne che possono essere aggiornate, con una sola che viene aggiornata per riga corrispondente (la tabella da aggiornare è unita a un'altra nella query). La quantità di righe da aggiornare probabilmente varierà, potrebbe essere dozzine o centinaia. Credo che siano in atto indici per le condizioni di unione.