【发布时间】:2020-03-30 22:52:40
【问题描述】:
如果我不添加任何内容而只是“将结果另存为...”csv,那么除了第一列和最后一列之外,所有内容都被正确引用和分隔。
我有一个不包含选项“Quote strings containing list separators when saving .csv results”的更高版本的 SQL Server Management Studio。我已经使用 REPLACE 和 QUOTENAME 来尝试以正确的格式获取它。
例如,它应该看起来像"00301", "1020", "Description", "Email" but without any changes I get 00301, "1020", "Description", Email.
当我使用 QUOTENAME 将引号添加到第一列和最后一列时,它会在结果窗口中显示正确的格式,但是当我保存为 csv 时,它现在会为这些列添加额外的引号。现在我得到"""00301""", "1020", "Description", """Email"""
当我使用 REPLACE 时,它会将其连接成一列,但仍然不能正确引用。
【问题讨论】:
-
SSMS 知道列的数据类型并且不引用 int 列。
-
CSV 数据在某些情况下只需要在列数据周围加上引号(主要是列数据包含逗号,如果没有引号将被视为列分隔符 - 引号中的值会转义嵌入分隔器)。您的第一个示例输出似乎非常好 - 不需要缺少的引号。您是否对该 CSV 文件有特定问题,或者您只是因为认为每个值都应该有引号而感到不安?
-
为了将它上传到我需要的程序中,我需要引用每个值。你说它不引用 int 列,但我的最后一列不是 int。
标签: sql csv replace ssms quotes