[英]SSMS Export Query Results to Excel or CSV
我正在尝试将查询结果导出到 CSV,然后最终导出到 Excel。
我的问题是,我的一个专栏中有逗号,逗号会中断 Excel 在正确的位置解析 CSV。
我没有对数据库的写入权限,因此不能将查询结果放入表中,然后将该表导出到 excel 中。
有没有办法导出到 excel,或者至少 CSV 中包含逗号的列?
1 在对象资源管理器窗口中右键单击您的数据库,转到任务 -> 导出数据
2 选择 Sql Server 本机客户端作为您的源,输入您的连接参数
3 选择 Excel 作为您的目的地
4 在下一个屏幕上粘贴您的选择查询
5 浏览剩余的屏幕,确保一切正常
6 利润
如果您可以查询数据库,则可以使用类似这样的方法来检索没有列的数据。
DECLARE @String varchar(25) = 'Comman delimited, value.'
SELECT REPLACE(@String, ',', ' ') AS ScrubbedValue
使用替换函数将逗号替换为竖线或其他字符。 在 Excel 中,如果需要,可以使用 Excel 的替换将管道恢复为逗号。
select
Date = a.Date_Time,
Action = Type,
Username = a.username,
Desc = replace( description,',','|'), -- replace pesky commas
from
dbo.AuditLog a
where
a.Date_Time > DATEADD( DAY, -1, getdate())
如果您使用@MikaelEliasson 的解决方案,您实际上可以毫无问题地保存到 CSV - SSMS 将自动将任何包含逗号的数据用双引号括起来。 只需右键单击,将结果另存为... 数据网格结果上的任意位置。
要包括标题行,请导航到工具 → 选项 → 查询结果 → 结果到网格,并确保勾选“复制或保存结果时包括列标题”。
如果任何字段有前导零,Excel 将截断它们(即使您转换为文本)。 为避免这种情况,请使用"=""MyLeadingZeroField"""
,因此:
SELECT CONCAT('"=""', MyLeadingZeroField, '"""')
一旦在 Excel 中打开,它将正确显示。
如果您尝试前导单引号或单引号包围的解决方案,这实际上不起作用,因为这些将显示在 Excel 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.