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