复制&将数据从SSMS移动到Excel时粘贴错误

时间:2017-11-28 14:17:34

标签: sql-server excel

我试图将查询结果从SSMS复制到excel。我选择"复制标题"并将其粘贴到Excel中。我的数据集有9列。当我将数据粘贴到Excel中时,第9列的信息将在9,10和1列之间传播。它看起来像这样:

A B C D E F G H I    -Column Heading

A B C D E F G H I I  -Data

I

(blank row)

我已经查看了SSMS中的查询结果,这在原始数据中没有发生。当列F中的值为NULL时,不会出现第10列中的附加行和信息。到目前为止,我尝试了以下内容:

- 当我从查询中删除第9列时,请复制&粘贴,第8列分布在8,9和1上。

- 我还创建了一个全新的电子表格,确保清除任何格式并尝试复制&糊。

- 我将查询结果保存为.csv文件并将其导入Excel。我仍然得到相同的结果。

- 我一次一个地复制列。第8列中的信息最终在两行上与下一行的其他列配对。因此,第8列中的每个项目都成为向下偏移的另一行,直到第8列中的值多于其他列。如果第8列中的值为NULL,则不会发生这种情况。

- 我从查询结果中删除了所有其他项目,以便仅返回第8列和第9列的值。第9列的所有信息最后都在第8列,后面是一个空行。

  • 单独返回8,返回的每个项目最终都是两行。

  • 单独返回9,数据被正确粘贴。

标题总是在正确的位置。据我所知,第8列中的数据是罪魁祸首。数据类型是varchar(max),它允许空值。所包含的信息采用以下格式, (TC日期和时间,姓氏,名字)评论

将SSMS查询结果移动到Excel中以制作表格是我经常做的事情。但是我以前从未遇到过这个结果。希望我的解释足够彻底,所以有人可以告诉我如何纠正这个错误。谢谢!

3 个答案:

答案 0 :(得分:2)

在粘贴到Excel之前替换数据集中的Feed和回车符,在有问题的列上尝试这样的操作,然后尝试将其粘贴到Excel中:

SELECT REPLACE(REPLACE(yourcolumnname, CHAR(13),' '), CHAR(10),' ')
FROM table

答案 1 :(得分:0)

这可能是因为使用' Text to columns'最近在Excel中。这会使用某些规则拆分列。列需要重新设置为'制表符分隔'。

对于违规栏:

  • 数据→文本到列
  • 原始数据类型:检查分隔
  • 点击下一步
  • 分隔符:选中' Tab',取消选中其他内容。
  • 点击下一步
  • 点击完成

答案 2 :(得分:-1)

SSMS 复制粘贴不保留数据类型。 Excel 尝试解析字符串并将其拆分为其他列甚至行。 我开发了 SSMSBoost 插件,我们在我们的视频中介绍了这一点,它解释了将数据导出到 Excel 而不丢失数据的 3 种不同方式(保留数据类型信息):(以原生 excel 格式复制粘贴、XML 导出、. dqy 查询)https://youtu.be/waDCukeXeLU