postgresql

Postgres da record set a csv

Oggi mi è capitato di dover ottenere un csv a partire da un record set di chiavi. Supponiamo quindi di avere un'entita che ha una chiave numerica e di voler ottenere un csv con tutte le chiavi.

L'entità è così formata:

test=> \d utente
           Table "public.utente"
 Column |         Type          | Modifiers 
--------+-----------------------+-----------
 id     | numeric(9,0)          | not null
 name   | character varying(50) | 
Indexes:
    "utente_id_key" UNIQUE CONSTRAINT, btree (id)
 
test=> 
test=> select * from utente;
 id |   name   
----+----------
  1 | ciccio
  2 | paperino
  3 | pluto
  4 | minnie
  5 | paperina
(5 rows)
 
test=>

Per avere il csv di tutte le chiavi useremo la seguente query che sfrutta la funzione string_agg:

test=> select string_agg(id::text, ',') as csv from (select id from utente) as foo;
    csv    
-----------
 1,2,3,4,5
(1 row)
 
test=>

Questa e altre funzioni le trovate documentate nel sito di postgres.

Blog: 

Programmazione: 

Subscribe to RSS - postgresql