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

Postgres:Wählen Sie den Spaltennamen basierend auf dem booleschen Wert aus

Sie können einen case verwenden Ausdruck:

select
    id,
    case
        when bike  = true then 'bike'
        when car   = true then 'car'
        when bus   = true then 'bus'
        when metro = true then 'metro'
    end mode
from survey

Dies setzt voraus, dass für jede Zeile nur eine Spalte wahr ist. Wenn nicht, wird nur der Wert der ersten übereinstimmenden Spalte zurückgegeben.