PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgres:converte uma única linha em várias linhas (unpivot)


Um único SELECT com um LATERAL juntar-se a um VALUES expressão faz o trabalho:
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);

Relacionado:
  • Converter uma linha em várias linhas com menos colunas
  • SELECT DISTINCT em várias colunas