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

Skjul rækker til én kolonne

Installer først udvidelsen tablefunc , hvis du ikke allerede har gjort det. Skal gøres én gang pr. database.

CREATE EXTENSION tablefunc;

Du skal bruge PostgreSQL 9.1 for CREATE EXTENSION . I ældre versioner skal du køre installationsscriptet fra skallen med en kommando som:

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

Mere info om Postgres 9.0 i den fine manual .

Så kan du bruge en forespørgsel som denne:

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

Returnerer præcis det, du bad om.
Du kan også oprette en funktion til det. Jeg tilføjede flere oplysninger i dette nært beslægtede svar .



  1. Sqoop Import --password-fil funktion fungerer ikke korrekt i sqoop 1.4.4

  2. SQL-kommandoer er ikke kompatible af H2

  3. logning verbosity mysql 5.7

  4. Sådan fjerner du tekst mellem 2 tegn ved hjælp af forespørgsel i MYSQL