PostgreSQL将COMPOUND查询输出到CSV

问题描述 投票:0回答:1

我有一个功能齐全的复合PostgreSQL查询...

SELECT * FROM 
(SELECT date_trunc('day', date) date, (array_agg(open ORDER BY time 
ASC))[1] o, MAX(high) h, MIN(low) l, (array_agg(close ORDER BY time 
DESC))[1] c
FROM 
(SELECT * FROM ES_test WHERE time BETWEEN 
(SELECT pit_open FROM "contracts" WHERE root_symbol = '@ES' LIMIT 1) 
AND 
(SELECT pit_close FROM "contracts" WHERE root_symbol = '@ES' LIMIT 1)) 
AS pit
GROUP BY date_trunc('day', date) ORDER BY date) AS pit_daily INNER 
JOIN trading_dates ON pit_daily.date = trading_dates.date;

我想将此查询的输出导出到csv。我已经尝试了COPY方法...

Copy (Select * From foo) To '/tmp/test.csv' With CSV DELIMITER ',';

和\ copy方法...

\copy (SELECT * FROM persons) to 'C:\tmp\persons_client.csv' with 
csv

没有任何成功。当我尝试这些时,我遇到多个错误,包括解析错误,或者在查询中的“ AS”之一之后或在引用要创建csv文件的位置的“ TO”之后立即纠结。尝试创建临时表或临时视图时,出现类似错误。有什么建议?这是版本...'psql(PostgreSQL)12.2(Ubuntu 12.2-2.pgdg18.04 + 1)'

postgresql csv ubuntu export output
1个回答
0
投票

根据ERROR消息和注释,您似乎在文件名之前有一个所谓的“智能”引号,或者也许有一个反引号/重音。您需要将其作为直接的ASCII单引号/单引号。

无论您使用什么来编辑查询,似乎都太聪明了。但似乎确实还会弄乱您的其余引号,而不仅仅是这些。

© www.soinside.com 2019 - 2024. All rights reserved.