Amazon Redshift在使用时并没有真正的CSV选项UNLOAD(例如,类似于WITH CSVPostgreSQL COPY命令中提供的).
如果您使用该ESCAPE选项,Redshift 将使用双引号转义双引号\.例如,Excel不知道如何处理该斜杠.根据RFC-4180,它应该使用双引号
如果使用双引号括起字段,则必须通过在其前面添加另一个双引号来转义出现在字段内的双引号.例如:
"aaa","b""bb","ccc"
Sooo ...引用将打破出口,除非我们能找到一种方法让Redshift正确地逃脱它们.
鉴于以下数据:
# select * from unload_test;
test_field | test_field_number
--------------------------------------------+-------------------
"No," she said, "that's not how we do it." | 5
Hi! This is a test, yo. | 5
Run Code Online (Sandbox Code Playgroud)
ESCAPE但不是ADDQUOTES,Excel等人继续打破所有逗号上的列,包括"转义"的(\,).例ESCAPE,ADDQUOTES您将获得初始问题示例中的结果.ADDQUOTES但我们不使用ESCAPE那么它将打破数据中的双引号.例有没有可用的解决方法,可以容纳数据中的引号和逗号?