PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Afficher le nom de la colonne avec la valeur maximale entre plusieurs colonnes

C'est un exemple classique pour un "simple" ou "commuté" CASE déclaration pour éviter la répétition de code.

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;

Le premier de la liste (de gauche à droite) gagne en cas d'égalité.