我正在尝试将查询结果导出为CSV文件,然后最终导入Excel。
我的问题是,我的其中一列中有逗号,这些逗号会打断Excel正确解析CSV文件的位置。
由于我没有数据库写入权限,因此无法将查询结果放入表格中,然后将该表格导出到Excel中。
是否有一种方法可以导出到Excel,或者至少在包含逗号的列的情况下导出CSV文件?
我正在尝试将查询结果导出为CSV文件,然后最终导入Excel。
我的问题是,我的其中一列中有逗号,这些逗号会打断Excel正确解析CSV文件的位置。
由于我没有数据库写入权限,因此无法将查询结果放入表格中,然后将该表格导出到Excel中。
是否有一种方法可以导出到Excel,或者至少在包含逗号的列的情况下导出CSV文件?
1 在对象资源管理器窗口中,右键单击您的数据库,选择“任务” -> “导出数据”
2 选择Sql Server本机客户端作为源,并输入您的连接参数
3 选择Excel作为目标
4 在下一个屏幕上粘贴您的选择查询
5 浏览其余屏幕,确保一切看起来正确
6 获得利润
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())
DECLARE @String varchar(25) = 'Comman delimited, value.'
SELECT REPLACE(@String, ',', ' ') AS ScrubbedValue
如果您使用{{link1:@MikaelEliasson的解决方案}},实际上可以在不出现任何问题的情况下保存为CSV格式 - SSMS将自动用双引号括起包含逗号的任何数据。只需右键单击,选择“另存为结果”即可将数据网格结果保存在任何位置。
要包括标题行, 导航到工具 → 选项 → 查询结果 → 结果到网格,并确保勾选了“复制或保存结果时包括列标题”。
如果任何字段有前导零,Excel会截断它们(即使你转换为文本)。要避免这个问题, 使用"=""MyLeadingZeroField"""
,例如:
SELECT CONCAT('"=""', MyLeadingZeroField, '"""')
一旦在Excel中打开,它将正确显示。
如果您尝试使用前导单引号或用单引号括起来的解决方案,这并不真正起作用,因为这些内容将在Excel中显示。