将SQL查询数据导出到Excel
我有一个查询返回一个非常大的数据集。 我无法将其复制并粘贴到我通常使用的Excel中。 我一直在做一些如何直接导出到Excel工作表的研究。 我在运行Microsoft Server 2003的服务器上运行SQL SERVER 2008.我试图使用Microsoft.Jet.OLEDB.4.0数据提供程序和Excel 2007.我已经拼凑了一小段代码,看起来像这样从我在例子中见过。
INSERT INTO OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\Working\Book1.xlsx;Extended Properties=EXCEL 12.0;HDR=YES') SELECT productid, price FROM dbo.product
然而,这是行不通的,我收到一个错误消息说
“关键字”SELECT“附近的语法错误”。
有没有人有任何想法如何做到这一点或可能是一个更好的方法?
我不知道这是你在找什么,但是你可以像下面这样将结果导出到Excel中:
在结果窗格中,单击左上angular的单元格以突出显示所有logging,然后右键单击左上angular的单元格并单击“将结果另存为”。 其中一个导出选项是CSV。
你也可以这样做:
INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=c:\Test.xls;','SELECT productid, price FROM dbo.product')
最后,您可以考虑使用SSIS(replaceDTS)进行数据导出。 这里是一个教程的链接:
http://www.accelebrate.com/sql_training/ssis_2008_tutorial.htm
如果您只需要导出为excel,则可以使用导出数据向导。 右键单击数据库,任务 – >导出数据。
我有一个类似的问题,但扭曲 – 上面列出的解决scheme,当结果集来自一个查询,但在我的情况下,我有多个单独的select查询,我需要导出到Excel的结果。 下面只是一个例子来说明,尽pipe我可以name in
条款中做一个name in
…
select a,b from Table_A where name = 'x' select a,b from Table_A where name = 'y' select a,b from Table_A where name = 'z'
该向导允许我从一个查询中导出结果,但在这种情况下不是来自不同查询的所有结果。
当我研究,我发现我们可以禁用结果到网格,并启用结果到文本。 所以,按下Ctrl + T,然后执行所有的语句。 这应该显示在输出窗口中的文本文件的结果。 您可以将文本操作为制表符分隔的格式,以便导入到Excel中。
您也可以按Ctrl + Shift + F将结果导出到一个文件 – 导出为一个.rpt文件,可以使用文本编辑器打开并操作Excel导入。
希望这可以帮助其他有类似问题的人。