Puedo usar CASE
para elegir qué columnas mostrar en una SELECT
consulta (Postgres), así:
SELECT CASE WHEN val = 0 THEN column_x
WHEN val = 1 THEN column_y
ELSE 0
END AS update, ...
¿Es posible algo similar al realizar una UPDATE
consulta en Postgres (es decir, elegir qué columnas deben actualizarse)? Supongo que no, ya que no pude encontrar nada al respecto, pero tal vez alguien tiene una alternativa inteligente (además de usar un procedimiento o actualizar cada columna usando a CASE
para determinar si el valor de la columna debe asignarse a un nuevo valor o simplemente reasignar el existente valor). Si no hay una alternativa fácil, por supuesto, también lo aceptaré como respuesta.
Información adicional : en mi caso, tengo 14 columnas potenciales que pueden actualizarse, y solo una se actualiza por fila coincidente (la tabla que se actualizará se une con otra en la consulta). La cantidad de filas para actualizar probablemente variará, podría ser decenas o cientos. Creo que existen índices para las condiciones de unión.