PSQL CSV列别名导致损坏的文件

我设法在Windows上使用PSQL将SQL查询直接导出到CSV文件中,只要不重新定义包含别名的列名(使用AS),一切正常。

但是,只要我使用列别名,例如:

\copy (SELECT project AS "ID" FROM mydb.mytable WHERE project > 15 ORDER BY project) TO 'C:/FILES/user/test_SQL2CSV.csv' DELIMITER ',' CSV HEADER 

我有意外的行为与CSV文件。

  • 在Excel中:CSV已损坏,为空
  • 在记事本中:数据存在,但没有分隔符或空格(连续的,例如ID27282930 …)
  • 在Notepad ++中:数据组织良好

(例如

 ID 27 28 29 30 ... 

有什么办法可以直接在Excel中读取导出的文件(就像我不使用别名时那样)?

在testing了查询的各种其他configuration之后,我发现了这个问题。 显然,Excel将解释以“ID”开头的文件,如某些SYLK格式而不是CSV …将列别名重命名为例如“MyID”修复了问题。

请参考: annalear.ca/2010/06/10/why-excel-thinks-your-csv-is-a-sylk