Answers:
SELECT string_agg(id::text, ',') FROM table
需要PostgreSQL 9.0,但这不是问题。
string_agg(CAST(id as varchar), ',')
不是。
string_agg(id::text, ',')
select string_agg(id, ', ' order by id desc) from table
STRING_AGG(DISTINCT customer_name, ',')
您可以使用array()和array_to_string()函数获取查询。与SELECT array( SELECT id FROM table );
您一起将得到类似以下结果:{1,2,3,4,5,6}
然后,如果要删除{}符号,则可以使用array_to_string()函数并使用逗号作为分隔符,因此:SELECT array_to_string( array( SELECT id FROM table ), ',' )
将得到类似1,2,3,4,5,6的结果
SELECT array_to_string( id, ',' ) AS id FROM table
您可以使用psql从任何SQL查询生成CSV:
$ psql
> \o myfile.csv
> \f ','
> \a
> SELECT col1 AS column1, col2 AS column2 ... FROM ...
生成的myfile.csv将具有SQL结果集列名称作为CSV列标题,并将查询元组作为CSV行。
h / t http://pookey.co.uk/wordpress/archives/51-outputing-from-postgres-to-csv
同样使用array_to_string()和array()函数。
select array_to_string(array(select column_name from table_name where id=5), ', ');
string_agg()
吗?
SELECT array_agg(id, ',') FROM table
{1,2,3,4}
我正在使用Postgres 11,而EntityFramework将其作为整数数组进行获取。