Angenommen, Sie haben eine SELECT id from table
Abfrage (der eigentliche Fall ist eine komplexe Abfrage), die mehrere Ergebnisse zurückgibt.
Das Problem ist, wie alle id
Rückgaben in einer einzigen Zeile durch Kommas getrennt werden.
sql
postgresql
Sorin
quelle
quelle
array_agg()
Funktion im Besonderen.Antworten:
SELECT string_agg(id::text, ',') FROM table
Benötigt PostgreSQL 9.0, aber das ist kein Problem.
quelle
string_agg(CAST(id as varchar), ',')
stattdessen Folgendes getan:string_agg(id::text, ',')
select string_agg(id, ', ' order by id desc) from table
STRING_AGG(DISTINCT customer_name, ',')
Sie können die Funktionen array () und array_to_string () zusammen mit Ihrer Abfrage verwenden. Mit erhalten
SELECT array( SELECT id FROM table );
Sie ein Ergebnis wie: {1,2,3,4,5,6}Wenn Sie dann die Zeichen {} entfernen möchten, können Sie einfach die Funktion array_to_string () verwenden und Komma als Trennzeichen verwenden. So
SELECT array_to_string( array( SELECT id FROM table ), ',' )
erhalten Sie ein Ergebnis wie: 1,2,3,4,5,6quelle
SELECT array_to_string( id, ',' ) AS id FROM table
Sie können eine CSV aus jeder SQL-Abfrage mit psql generieren:
Die resultierende Datei myfile.csv enthält die Spaltennamen der SQL-Ergebnismenge als CSV-Spaltenüberschriften und die Abfragetupel als CSV-Zeilen.
h / t http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv
quelle
Verwenden Sie dazu die Funktion array_to_string () & array ().
quelle
string_agg()
?Ich verwende Postgres 11 und EntityFramework ruft es als Array von Ganzzahlen ab.
quelle