繁体   English   中英

SSMS 将查询结果导出到 Excel 或 CSV

[英]SSMS Export Query Results to Excel or CSV

我正在尝试将查询结果导出到 CSV,然后最终导出到 Excel。

我的问题是,我的一个专栏中有逗号,逗号会中断 Excel 在正确的位置解析 CSV。

我没有对数据库的写入权限,因此不能将查询结果放入表中,然后将该表导出到 excel 中。

有没有办法导出到 excel,或者至少 CSV 中包含逗号的列?

1 在对象资源管理器窗口中右键单击您的数据库,转到任务 -> 导出数据

2 选择 Sql Server 本机客户端作为您的源,输入您的连接参数

3 选择 Excel 作为您的目的地

4 在下一个屏幕上粘贴您的选择查询

5 浏览剩余的屏幕,确保一切正常

6 利润

我处理这个问题的方法是使用制表符分隔的文件(假设我们在数据中没有制表符)

第一步导出tsv

选择 tsv 选项

另一种尝试方法是将表直接从 SSMS 中的查询结果复制并粘贴到 Excel 中,然后从那里保存文件。

如果您可以查询数据库,则可以使用类似这样的方法来检索没有列的数据。

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()) 

您可以将 TOAD 用于 SQL Server。 它已导出为 Excel。 这比 csv 更好,因为它保留了数据类型。 这甚至在试用模式下和试用期结束后也有效。 我使用 Toad 只是为了导出到 Excel。 在此处输入图像描述

另一种选择是使用“Azure Data Studio”。 它是免费的,并具有另存为 excel 选项。

在此处输入图像描述

我使用 SSMS 作为我的主要工具,但是当我需要将某些内容导出到 excel 时,我会将查询复制并粘贴到 azure data studio 中。

逗号

如果您使用@MikaelEliasson 的解决方案,您实际上可以毫无问题地保存到 CSV - SSMS 将自动将任何包含逗号的数据用双引号括起来。 只需右键单击,将结果另存为... 数据网格结果上的任意位置。

第一步导出tsv

标题行

包括标题行,请导航到工具 → 选项 → 查询结果 → 结果到网格,并确保勾选“复制或保存结果时包括列标题”。

前导零

如果任何字段有前导零,Excel 将截断它们(即使您转换为文本)。 避免这种情况,请使用"=""MyLeadingZeroField""" ,因此:

 SELECT CONCAT('"=""', MyLeadingZeroField, '"""')

一旦在 Excel 中打开,它将正确显示。

如果您尝试前导单引号或单引号包围的解决方案,这实际上不起作用,因为这些将显示在 Excel 中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM