如何将逗号视为输出中的文本?

时间:2011-12-02 17:54:13

标签: postgresql

包含逗号的1列。当我将查询输出到csv时,这些逗号会破坏csv格式。我为避免这种情况而做的事情很简单     替换(A。"销售代表",',','')

是否有更好的方法可以在不破坏csv文件的情况下实际获取最终输出中的逗号?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用COPY command让PostgreSQL为您构建CSV:

  

COPY - 在文件和表格之间复制数据

像其中一个:

copy your_table to 'filename' csv
copy your_table to 'filename' csv force quote *
copy your_table to stdout csv force quote *
copy your_table to stdout csv force quote * header
...

您必须是超级用户才能复制到文件名。如果您在psql内,则可以使用\copy command

  

执行前端(客户端)副本。这是一个运行SQL COPY命令的操作,但是psql不是读取或写入指定文件,而是读取或写入文件,并在服务器和本地文件系统之间路由数据。

语法几乎相同:

\copy your_table to 'filename.csv' csv force quote * header
...

答案 1 :(得分:1)

使用"

引用字段
a,this has a , in it,b

会变成

a,"this has a, in it",b

如果字段分别为,",则引号加倍:

a,this has a " and , in it,b

变为

a,"this has a "" and , in it",b