PostgreSQL查询以逗号分隔列表的forms返回结果
假设你有一个SELECT id from table
查询的SELECT id from table
(真实的情况是一个复杂的查询),它会返回多个结果。
问题是如何获得所有的id
单行返回,逗号分隔?
SELECT string_agg(id, ',') FROM table
需要PostgreSQL 9.0,但这不是问题。
您可以使用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
你可以使用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-outputting-from-postgres-to-csv