Disons que vous avez un SELECT id from table
(le cas réel est une requête complexe) qui vous renvoie plusieurs résultats.
Le problème est de savoir comment obtenir tous id
dans une seule ligne, séparés par des virgules ?
Disons que vous avez un SELECT id from table
(le cas réel est une requête complexe) qui vous renvoie plusieurs résultats.
Le problème est de savoir comment obtenir tous id
dans une seule ligne, séparés par des virgules ?
Vous pouvez utiliser les fonctions array() et array_to_string() avec votre requête. Avec SELECT array( SELECT id FROM table );
vous obtiendrez un résultat comme : {1,2,3,4,5,6}
Ensuite, si vous souhaitez supprimer les signes {}, vous pouvez simplement utiliser la fonction array_to_string() et utiliser la virgule comme séparateur, ainsi : SELECT array_to_string( array( SELECT id FROM table ), ',' )
vous obtiendrez un résultat comme : 1,2,3,4,5,6
Vous pouvez générer un CSV à partir de n'importe quelle requête SQL en utilisant psql :
$ psql
> \o myfile.csv
> \f ','
> \a
> SELECT col1 AS column1, col2 AS column2 ... FROM ...
Le fichier myfile.csv résultant aura les noms de colonnes du jeu de résultats SQL comme en-têtes de colonnes CSV, et les tuples de la requête comme lignes CSV.
h/t http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.