MrP*_*ink 63 sql excel copy-paste sql-server-2008 sql-server-2012
我最近升级到SQL2012并使用Management Studio.我的数据库中的一个列CHAR(13) + CHAR(10)
存储在其中.
当我使用SQL Server 2008时,这将完全复制并粘贴到Excel中.但是,现在,复制和粘贴相同的数据会在Excel中的数据中创建一个新的行/回车符.
我在SQL2012中错过了一个可以解决此问题的设置吗?我不想简单地REPLACE(CHAR(13) + CHAR(10))
在每个数据库选择上,因为我必须从使用SELECT *
到定义每个单独的列.
Rob*_*sen 52
我最好的猜测是,这不是一个错误,而是Sql 2012的一个功能.;-)在其他情况下,你很乐意保留你的cr-lf,就像复制大量文本一样.它只是在你的情况下不能很好地工作.
您可以随时在选择中删除它们.这将使您在两个版本中打算进行查询:
select REPLACE(col, CHAR(13) + CHAR(10), ', ') from table
Run Code Online (Sandbox Code Playgroud)
THe*_*per 27
我找到了解决问题的方法; 而不是手动复制粘贴,使用Excel连接到您的数据库并导入整个表.然后删除您不感兴趣的数据.
以下是步骤(适用于Excel 2010)
Data > Get external data: From other sources > From SQL Server
Excel现在将导入完整的表,其中新行完整无缺.
Cha*_*non 23
这是通过在复制上添加新选项Retain CR\LF或在工具 - >选项...菜单,查询结果 - > SQL Server - >结果到网格下保存来解决的.
您需要打开新会话(窗口)才能进行更改.
默认值是未选中的(false),这意味着从网格中复制/保存将复制显示的文本(CR\LF替换为空格).如果设置为true,则文本将在实际存储时从网格中复制/保存 - 无需替换字符.
如果人们错过了连接项链(导致https://connect.microsoft.com/SQLServer/feedback/details/735714),则此问题已在SSMS的预览版中得到修复.
您可以从https://msdn.microsoft.com/library/mt238290.aspx免费下载,它是一个独立的下载,因此不再需要完整的SQL媒体.
(注意 - https://msdn.microsoft.com/library/ms190078.aspx上的页面目前没有使用此信息进行更新.我正在跟进这个,所以它应该很快反映出新的选项)
Ron*_*ald 13
我最好的方法是将结果中的回车符/换行符(使用标题复制/复制/保存结果为)复制到Excel中,在其中添加双引号SELECT
,例如:
SELECT '"' + ColumnName + '"' AS ColumnName FROM TableName;
Run Code Online (Sandbox Code Playgroud)
如果列数据本身可以包含双引号,则可以通过"双引号"转义它们:
SELECT '"' + REPLACE(ColumnName, '"', '""') + '"' AS ColumnName FROM TableName;
Run Code Online (Sandbox Code Playgroud)
在SQL Management Studio中,空列数据将仅显示为2个双引号,但复制到Excel将导致空单元格.NULL
将保留值,但可以使用CONCAT('"', ColumnName, '"')
或更改COALESCE(ColumnName, '')
.
正如@JohnLBevan评论的那样,也可以使用内置函数来完成转义列数据QUOTENAME
:
SELECT QUOTENAME(ColumnName, '"') AS ColumnName FROM TableName;
Run Code Online (Sandbox Code Playgroud)
小智 5
@ AHiggins的建议对我很有用:
REPLACE(REPLACE(REPLACE(B.Address, CHAR(10), ' '), CHAR(13), ' '), CHAR(9), ' ')
Run Code Online (Sandbox Code Playgroud)
小智 5
将数据从 SQL Server 复制到 Excel 时出现行拆分问题。请参阅下面的示例并尝试使用替换一些字符。
SELECT replace(replace(CountyCode, char(10), ''), char(13), '')
FROM [MSSQLTipsDemo].[dbo].[CountryInfo]
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以尝试将查询结果保存为excel,将文件扩展名更改为.txt。使用 Excel 打开(打开方式...),然后使用文本到列(格式为文本)。不确定这是否适用于这种情况,但对于其他擅长自动剥离的格式问题很有效。
归档时间: |
|
查看次数: |
100212 次 |
最近记录: |