PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Spaltennamen mit Maximalwert zwischen mehreren Spalten anzeigen

Das ist ein Lehrbuchbeispiel für einen "simple" oder "switched" CASE -Anweisung, um Codewiederholungen zu vermeiden.

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;

Bei Gleichstand gewinnt der Erste in der Liste (von links nach rechts).