从Postgres VIA命令行导出CSV

时间:2020-01-02 23:36:38

标签: postgresql tableau-api psql

你好,堆满了鲜花! 我目前正在使用我开发的C#应用​​程序将Postgres表导出为.csv。我可以使用以下命令将它们导出,没有问题...

set PGPASSWORD=password
psql -U USERNAME Database_Name
\copy (SELECT * FROM table1) TO C:\xyz\exportfile.csv CSV DELIMITER ',' HEADER;

我遇到的问题是.csv应该与Tableau一起使用,但是,导入到excel时遇到了同样的问题。它将Tableau和Excel中的文本字段都转换为整数。这会导致在Tableau端专门连接序列号的问题。

我知道我可以在Tableau / Excel中手动更改这些字段,但是我试图找到一种方法来确保最终用户不需要这样做。我希望他们只需拖放更新的.csv postgresql数据提取文件,并能够启动Tableau没问题。他们似乎并不精通技术。我知道您可以将Tableau直接连接到Postgres,但是在这种特殊情况下,由于无法控制的限制,我不被允许这样做。

我正在使用PostgreSQL 12和Tableau v2019.4.0

编辑:根据要求提供示例数据!这两个字段都是PostgreSQL内的TEXT,但是未指定导出。

Excel Formatting
ASSETNUM,ITEMNUM
1834,8.11234E+12
1835,8.11234E+12

Notepad Formatting
ASSETNUM,ITEMNUM
1834,8112345673294
1835,8112345673295

注意:如果您在Excel中选择特定的单元格,则会显示完整的数字。

1 个答案:

答案 0 :(得分:0)

CSV文件没有任何类型信息,因此Excel / Tableau之类的程序可以随意解释其数据。

但是,@ JorgeCampos的链接提供了有用的信息。例如

"=""123""","=""123"""

得到的解释不同于

123,123

当您将其加载到Excel中时。

如果要在数据中添加引号,最简单的方法是使用PostgreSQL的string functions,例如

SELECT '"=""' || my_column || '"""' FROM my_database
相关问题