sql >> Databasteknik >  >> RDS >> PostgreSQL

Concat rader i Postgres

Använd GROUP BY och den samlade funktionen string_agg() :

SELECT nummer
      ,string_agg(vorname, E'\n') AS vorname
      ,string_agg(name, E'\n') AS name
      ,cash
FROM   mytable
GROUP  BY nummer, cash
ORDER  BY nummer, cash;

Jag lade till cash till GROUP BY för att komma till det ursprungliga värdet och skydda mot fallet där det skulle vara annorlunda för samma nummer .

När det gäller din kommentar:

SELECT nummer
      ,string_agg(vorname, E'\n') AS vorname
      ,string_agg(name, E'\n') AS name
      ,cash
FROM  (
   SELECT DISTINCT
          nummer, vorname, name, cash
   FROM   mytable
   ) AS m
GROUP  BY nummer, cash
ORDER  BY nummer, cash;


  1. Hur får man den automatiskt inkrementerade PK från Oracle-databasen?

  2. Hur man visar alla lokaler i MariaDB

  3. Python 'int32' kan inte konverteras till en MySQL-typ

  4. Exekvera en lagrad procedur med Windows Task Scheduler