Digamos que tiene una SELECT id from table
consulta (el caso real es una consulta compleja) que le devuelve varios resultados.
El problema es cómo obtener todos los id
retornos en una sola fila, separados por comas.
sql
postgresql
sorin
fuente
fuente
array_agg()
función en particular.Respuestas:
SELECT string_agg(id::text, ',') FROM table
Requiere PostgreSQL 9.0 pero eso no es un problema.
fuente
string_agg(CAST(id as varchar), ',')
lugar.string_agg(id::text, ',')
select string_agg(id, ', ' order by id desc) from table
STRING_AGG(DISTINCT customer_name, ',')
Puede utilizar las funciones array () y array_to_string () junto con su consulta. Con
SELECT array( SELECT id FROM table );
obtendrá un resultado como: {1,2,3,4,5,6}Luego, si desea eliminar los signos {}, puede usar la función array_to_string () y usar una coma como separador, así:
SELECT array_to_string( array( SELECT id FROM table ), ',' )
obtendrá un resultado como: 1,2,3,4,5,6fuente
SELECT array_to_string( id, ',' ) AS id FROM table
Puede generar un CSV a partir de cualquier consulta SQL usando psql:
El archivo myfile.csv resultante tendrá los nombres de columna del conjunto de resultados SQL como encabezados de columna CSV y las tuplas de consulta como filas CSV.
h / t http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv
fuente
use la función array_to_string () & array () para lo mismo.
fuente
string_agg()
?Estoy usando Postgres 11 y EntityFramework lo está obteniendo como una matriz de números enteros.
fuente