PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Postgres:converti una singola riga in più righe (unpivot)

Un unico SELECT con un LATERAL unisciti a un VALUES l'espressione fa il lavoro:

SELECT p.id, v.*
FROM   price_list p
     , LATERAL (
   VALUES
      ('type_a', p.price_type_a)
    , ('type_b', p.price_type_b)
    , ('type_c', p.price_type_c)
   ) v (price_type, price);

Correlati:

  • Converti una riga in più righe con meno colonne
  • SELEZIONA DISTINCT su più colonne