【问题标题】:Saving psql output to csv file将 psql 输出保存到 csv 文件
【发布时间】:2015-08-07 14:38:47
【问题描述】:

我有一个查询写入位于 /path/to/query 的文件中。如何在查询中不使用 COPY 将输出结果保存到 csv 文件?我尝试了以下命令,但输出文件的字段由“|”分隔。

psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ','

【问题讨论】:

    标签: sql postgresql csv psql postgresql-copy


    【解决方案1】:

    文档中没有解释,但是-F 选项需要-A 选项(未对齐的表格输出)才能工作:

    psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' -A
    

    如果您不希望 csv 中的标题,这意味着在顶部和底部没有多余的行,也可以使用 -t 选项。

    psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' -A -t
    

    来自帮助:

    -A, --no-align 未对齐表格输出模式
    -F,--字段分隔符=字符串 设置字段分隔符(默认:“|”)
    -t, --tuples-only 只打印行

    【讨论】:

    • 它有效。这有点挑剔,但我如何摆脱 2 额外的行:顶部的“SELECT ”和底部的“(rows )”?
    • 如果您只想要元组,而底部和顶部没有其他行,请使用选项 -t: psql -U username -d dbname -f /path/to/query -o /path/to/output/file -F ',' -A -t
    • 我试过了。我仍然看到“SELECT,尽管底部的行数消失了。
    • 这来自查询。使用 sql 代码在您的问题中发布文件的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 2022-11-25
    • 2021-07-14
    • 2022-01-13
    • 2010-12-03
    • 1970-01-01
    相关资源
    最近更新 更多