Digamos que você tenha uma SELECT id from table
consulta (o caso real é uma consulta complexa) que retorna vários resultados.
O problema é como obter todos os id
retornos em uma única linha, separados por vírgulas?
sql
postgresql
Sorin
fonte
fonte
array_agg()
função em particular.Respostas:
SELECT string_agg(id::text, ',') FROM table
Requer PostgreSQL 9.0, mas isso não é um problema.
fonte
string_agg(CAST(id as varchar), ',')
vez disso.string_agg(id::text, ',')
select string_agg(id, ', ' order by id desc) from table
STRING_AGG(DISTINCT customer_name, ',')
Você pode usar o conjunto de funções array () e array_to_string () com sua consulta. Com
SELECT array( SELECT id FROM table );
você obterá um resultado como: {1,2,3,4,5,6}Então, se você deseja remover os sinais {}, você pode apenas usar a função array_to_string () e usar a vírgula como separador, então:
SELECT array_to_string( array( SELECT id FROM table ), ',' )
obterá um resultado como: 1,2,3,4,5,6fonte
SELECT array_to_string( id, ',' ) AS id FROM table
Você pode gerar um CSV a partir de qualquer consulta SQL usando psql:
O myfile.csv resultante terá os nomes das colunas do conjunto de resultados SQL como cabeçalhos de coluna CSV e as tuplas de consulta como linhas CSV.
h / t http://pookey.co.uk/wordpress/archives/51-outputting-from-postgres-to-csv
fonte
use a função array_to_string () & array () para o mesmo.
fonte
string_agg()
?Estou usando o Postgres 11 e EntityFramework o está buscando como uma matriz de inteiros.
fonte