首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sql向csv文件添加新的换行符?

问如何使用sql向csv文件添加新的换行符?
EN

Stack Overflow用户
提问于 2013-01-08 13:59:44
回答 2查看 1.4K关注 0票数 0

我目前正在使用Postgresql中的copy命令将sql查询的结果输出到一个带有标题的CSV文件。我想要做的是在标题和CSV数据的开头之间添加一个换行符,以使其更具可读性。

有没有一种简单的方法来改变我的查询呢?谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-09 02:10:37

实际上,这是可能的,尽管这有点小麻烦:

使用查询中的AS子句重命名输出的最后一列,以便在该列的末尾添加换行符。为了保留非标准字符,必须确保使用双引号将列名引起来,并且不能在COPY的FORCE QUOTE子句中使用该列。

通过这个查询,我能够让它按照您的要求工作:

代码语言:javascript
复制
copy (select typname, typlen, typinput, typoutput as "typoutput^L" from pg_type limit 10) to stdout with csv header;

我的系统输出的前三行如下所示:

代码语言:javascript
复制
typname,typlen,typinput,typoutput

bool,1,boolin,boolout

请注意,此输出中的"^L“实际上是我在PostgreSQL 9.2psql客户端的Linux控制台中使用的组合键。尝试使用字符串"^L“不起作用。此外,这也不起作用,尽管它让您更接近(请注意换行):

代码语言:javascript
复制
copy (select typname, typlen, typinput, typoutput as "typoutput
" from pg_type limit 10) to stdout with csv header;

最后,前两行代码如下所示:

代码语言:javascript
复制
typname,typlen,typinput,"typoutput
"

这是不太正确的。

您只需要在您的特定环境中修补如何添加换行符,但希望这里有足够的信息来开始。

票数 1
EN

Stack Overflow用户

发布于 2013-01-08 14:01:58

不,没有。在后处理输出的脚本中这样做。PostgreSQL的COPY不应该产生打印得漂亮的可读性输出,它是用来产生可靠的、一致的输出的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14209061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档