首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当将sql结果导出到CSV时,如何将逗号分隔在单个单元格中

当将sql结果导出到CSV时,如何将逗号分隔在单个单元格中
EN

Stack Overflow用户
提问于 2016-09-26 06:05:40
回答 2查看 577关注 0票数 2

我试图使用bcp将查询结果导出到本地路径。

代码语言:javascript
复制
SET @CMD =       'bcp "select * from ##OutputTable" queryout "' + @Path + '\Temp_RawData.csv" -S ' + @@SERVERNAME + ' -T -t , -c'
SET @HEADERCMD = 'bcp "SELECT * from ##cols" queryout "' + @Path + '\Temp_Headers.csv" -S ' + @@SERVERNAME + ' -T -t , -c'
SET @Combine =   'copy "' + @Path + '\Temp_Headers.csv" + "' + @Path + '\Temp_RawData.csv" "' + @Path + '\MyExcel.csv"'
SET @DelCMD =    'del "' + @Path + '\Temp_*.csv"'

但是,结果字段中的一个注释包含的值如下

工作完成良好,下一轮将是@6:00

但是,我导出的结果集将此值显示为两个单独的字段,因为它由逗号分隔。因此,所有的值都被错误地放置了。如何纠正这个问题?如果我的结果集不包含任何未分隔逗号的字段,则结果看起来很好。

EN

回答 2

Stack Overflow用户

发布于 2016-09-26 06:36:03

有了BCP,就有- AFAIK -无法转义分隔符字符。

所以你应该永远

  • 使用QOUTENAME来获取量化的名称,而不是将qoutes作为字符连接到字符串中。
  • 在每一篇课文周围使用双字句。

你的出口应该像

代码语言:javascript
复制
OtherValues,"Job completed fine,Next run will be @6PM",OtherValues

BCP将把所有的qoutes处理为一个字符串..。

票数 2
EN

Stack Overflow用户

发布于 2016-09-26 06:34:51

这里有几个选择。

第一个选项:您可以使用另一个字段终止符,如制表符、\x、$等.但是你需要确保它是唯一的,没有出现在任何文本中。可以使用多个字符使分隔符唯一,但Excel只能使用单个字符分隔符导入。

第二个选项:您可以在excel导入中使用文本限定符("),在查询所有文本字段时使用QUOTENAME(列,CHAR(34))

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

https://stackoverflow.com/questions/39695692

复制
相关文章

相似问题

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