0

是否可以将表导出到 csv,但将多个选择附加到同一个文件?

我想导出(例如):

SELECT * FROM TABLE WHERE a > 5

然后,稍后:

SELECT * FROM TABLE WHERE b > 2

这必须转到同一个文件。

提前致谢!

4

3 回答 3

1

用于\o <filename>输出到文件。使用后的所有SELECT语句\o都将附加到<file>您设置\o为其他内容之前。

于 2014-08-27T18:24:19.250 回答
1

我知道的唯一方法是从命令行重定向输出。

psql -d dbname -t -A -F"," -c "SELECT * FROM TABLE WHERE a > 5" >> output.csv

然后稍后

psql -d dbname -t -A -F"," -c "SELECT * FROM TABLE WHERE b > 2" >> output.csv

您可以在此处查找命令行选项。

http://www.postgresql.org/docs/9.0/static/app-psql.html

于 2013-10-02T01:52:28.447 回答
0

\o与 to STDOUT 结合使用似乎\copy有效。例如:

db=> \o /tmp/test.csv
db=> \copy (select 'foo','bar') to STDOUT with CSV;
db=> \copy (select 'foo','bar') to STDOUT with CSV;
db=> \q

$ cat /tmp/test.csv 
foo,bar
foo,bar
于 2017-01-08T19:51:55.647 回答