识别从SQL Server 2012粘贴到Excel时存在问题的文本字符串
解决SSMS数据粘贴到Excel行数异常的实用办法
嘿,我太懂你这种头疼的情况了——明明SSMS里查出来的结果行数正正好,粘到Excel里就乱套,手动调整简直浪费时间。既然你不想改源数据、写复杂的异常处理语句,也不想碰CSV和文本分列功能,给你几个简单可行的方案:
调整SSMS查询结果设置(零代码操作)
直接在SSMS里改个小设置就能搞定:- 点击顶部菜单栏的「工具」→「选项」
- 依次展开「查询结果」→「SQL Server」→「以网格显示结果」
- 找到「在复制或保存时保留CR/LF」选项,取消它的勾选
- 确定后重新运行查询,再复制结果粘贴到Excel,单元格里的隐藏换行符就不会被带过去,行数就能和SSMS里保持一致了
轻量SQL字段清洗(超简单,不算复杂处理)
如果你不想改全局设置,就给有问题的字段加个极简的替换语句,把换行/回车符去掉:SELECT 其他正常字段, -- 替换掉换行(CHAR(10))和回车(CHAR(13))符 REPLACE(REPLACE(你的异常字段, CHAR(10), ''), CHAR(13), '') AS 处理后字段 FROM 你的数据表这个语句只是做了两次简单替换,完全算不上复杂异常处理,复制处理后的结果再粘到Excel就不会乱行了
用Excel Power Query导入(绕开CSV)
复制SSMS里的查询结果后,打开Excel按步骤操作:- 切换到「数据」选项卡,点击「获取数据」→「从剪贴板」
- 进入Power Query编辑器后,选中有问题的列,点击「转换」→「替换值」
- 查找值输入
#(lf)(换行符)替换为空,再同样处理#(cr)(回车符) - 点击「关闭并上载」,数据就会正常加载到Excel里,行数完全匹配SSMS的结果
这些办法都不用碰源数据,也完美绕开了你不想用的CSV和文本分列,应该能解决你的问题~
内容的提问来源于stack exchange,提问作者Dasal Kalubowila
相关产品推荐
相关产品推荐

