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

Sbalit řádky do jednoho sloupce

Nejprve nainstalujte rozšíření tablefunc , pokud jste to ještě neudělali. Pro každou databázi je potřeba provést jednou.

CREATE EXTENSION tablefunc;

Potřebujete PostgreSQL 9.1 pro CREATE EXTENSION . Ve starších verzích musíte spustit instalační skript z prostředí příkazem jako:

psql -d dbname -f SHAREDIR/contrib/tablefunc.sql

Další informace o Postgres 9.0 v podrobné příručce .

Pak můžete použít dotaz, jako je tento:

SELECT *
FROM   crosstab (
    'SELECT id
           ,label
           ,value
     FROM   t
     ORDER  BY 1, 2',

    'SELECT DISTINCT label
     FROM   t
     ORDER  BY 1')
AS tbl (
 id   int
,lab1 text
,lab2 text
,lab3 text
,lab4 text
,lab5 text
,lab6 text
);

Vrátí přesně to, co jste požadovali.
Můžete pro to také vytvořit funkci. Přidal jsem další informace v této úzce související odpovědi .



  1. Mysql se změní ' na â € ™?

  2. Změňte výchozí jazyk přihlášení na serveru SQL Server

  3. oracle systimestamp (sysdate) na milisekundy

  4. Volání notace pro podprogramy PL/SQL v databázi Oracle