sql >> Base de Datos >  >> RDS >> PostgreSQL

Mostrar nombre de columna con valor máximo entre varias columnas

Ese es un ejemplo de libro de texto para un "simple" o "switched" CASE instrucción para evitar la repetición de código.

SELECT CASE greatest(denver, seattle, new_york, dallas, "san fran")
          WHEN denver      THEN 'denver'
          WHEN seattle     THEN 'seattle'
          WHEN new_york    THEN 'new_york'
          WHEN dallas      THEN 'dallas'
          WHEN "san fran"  THEN 'san fran'
       END AS city, *
FROM   tbl;

El primero de la lista (de izquierda a derecha) gana en caso de empate.