【问题标题】:SQL Server CSV extract of tables with newline, doublequotes and commas in columns?SQL Server CSV 提取列中带有换行符、双引号和逗号的表?
【发布时间】:2010-12-16 22:28:51
【问题描述】:

我在 CSV 中提取了大约 10 个表格,其中 " 作为文本限定符。问题是我的提取在 Excel 中看起来不正确,因为有几列中有特殊字符。一些列在应该保留在列。

  1. 我一直在使用管理工作室导出功能手动执行此操作,但是使用脚本使用双引号限定符将 10 个表提取到 CSV 的最佳方法是什么?
  2. 是否必须转义逗号和双引号?最好的方法是什么?
  3. 我应该如何处理我的列中的换行代码,我们需要它们来迁移到新系统,但是 PM 想要打开文件并使用 Excel 进行修改。他们可以兼得吗?

我知道大部分问题是 Excel 正在解释文件,其中加载实用程序到另一个数据库可能不会对新行做任何特别的事情,但是如果我不在乎,数据中的双引号和逗号呢关于excel,我必须逃避吗?

非常感谢。

【问题讨论】:

    标签: sql-server csv newline extract double-quotes


    【解决方案1】:

    如果您使用的是 SQL Server 2005 或更高版本,导出向导将为您导出 excel 文件。 右键单击数据库,选择任务-> 导出数据... 将源设置为数据库。 将目标设置为 excel。 在向导结束时,选择创建 SSIS 包的选项。然后,您可以创建一个作业来按计划或按需执行包。

    【讨论】:

    • 我看到了,但该文件将主要用于导入某些未知解决方案,因此我们需要 CSV。但现在他们想在 Excel 中处理它。使用文本限定符和分隔符的选项自动在 csv 中创建文件的任何方法。谢谢。
    【解决方案2】:

    我建议永远不要使用逗号作为分隔符 - 它们在其他地方过于频繁地出现。使用标签,因为标签不太容易包含在 Excel 表格中。

    请确保不要以空格开头字段,除非您希望字段中有空格。

    尝试将文本 lf's 更改为文字文本 \n。那就是:

    你可能有:

    0,1,"第 1 行 第 2 行,第 3 行

    我建议你想要:

    0 1 "第 1 行\n第 2 行" 3

    (假设行间距为制表符)

    祝你好运

    【讨论】:

    • 哦,请注意,你需要用另一个双引号来转义你的双引号,所以如果你有字符串:我在那里说“你好”。你会想逃到我那里说“你好”。
    【解决方案3】:

    据我所知,您不能在 csv 列中添加新行。如果您知道一列可能有逗号、双引号或换行符,那么您可以使用此 SQL 语句将值提取为有效的 csv SELECT '"' + REPLACE(REPLACE(REPLACE(CAST([yourColumnName] AS VARCHAR(MAX)), '"', '""'), char(13), ''), char(10), '') + '"' FROM yourTable.

    【讨论】:

      猜你喜欢
      • 2016-06-08
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 2022-08-06
      • 2016-06-29
      相关资源
      最近更新 更多