sql >> Databáze >  >> RDS >> PostgreSQL

Postgres:převod jednoho řádku na více řádků (unpivot)

Jediný SELECT s LATERAL připojit k VALUES výraz dělá svou práci:

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

Související:

  • Převést jeden řádek na více řádků s méně sloupci
  • VYBERTE DISTINCT na více sloupcích


  1. mysql -> vložit do tbl (vybrat z jiné tabulky) a nějaké výchozí hodnoty

  2. Jak funguje EXPORT_SET() v MariaDB

  3. PostgreSQL matematické funkce

  4. Jak vytvořit rozdělenou sekvenci PostgreSQL?