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

Postgres:Einzelne Zeile in mehrere Zeilen umwandeln (Unpivot)

Ein einzelnes SELECT mit einem LATERAL Join zu einem VALUES Ausdruck macht den Job:

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);

Verwandte:

  • Konvertieren Sie eine Zeile in mehrere Zeilen mit weniger Spalten
  • SELECT DISTINCT für mehrere Spalten