Экспорт данных SQL-запроса в Excel
У меня есть запрос, который возвращает очень большой набор данных. Я не могу скопировать и вставить его в Excel, который я обычно делаю. Я занимаюсь некоторыми исследованиями, как экспортировать непосредственно на лист Excel. Я запускаю SQL SERVER 2008 на сервере под управлением Microsoft Server 2003. Я пытаюсь использовать поставщика данных 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 ".
Есть ли у кого-нибудь идеи о том, как это сделать или, возможно, лучший подход?
Ответы
Ответ 1
Я не знаю, это то, что вы ищете, но вы можете экспортировать результаты в Excel следующим образом:
В области результатов щелкните ячейку вверху слева, чтобы выделить все записи, а затем щелкните правой кнопкой мыши верхнюю левую ячейку и нажмите "Сохранить результаты как". Одним из вариантов экспорта является CSV.
Вы тоже можете сделать это:
INSERT INTO OPENROWSET
('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\Test.xls;','SELECT productid, price FROM dbo.product')
Наконец, вы можете изучить использование SSIS (замененный DTS) для экспорта данных. Вот ссылка на учебник:
http://www.accelebrate.com/sql_training/ssis_2008_tutorial.htm
Ответ 2
Если вам просто нужно экспортировать в excel, вы можете использовать мастер данных экспорта.
Щелкните правой кнопкой мыши базу данных, Задачи- > Экспорт данных.
Ответ 3
У меня была аналогичная проблема, но с завихрением - перечисленные выше решения работали, когда набор результатов был из одного запроса, но в моей ситуации у меня было несколько отдельных запросов на выбор, для которых мне нужны результаты для экспорта в Excel. Ниже приведен пример, иллюстрирующий, хотя я мог бы сделать предложение 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'
Мастер позволял мне экспортировать результат из одного запроса в excel, но не все результаты от разных запросов в этом случае.
Когда я исследовал, я обнаружил, что мы можем отключить результаты в сетке и включить результаты в текст. Итак, нажмите Ctrl + T, затем выполните все инструкции. Это должно показать результаты в виде текстового файла в окне вывода. Вы можете манипулировать текстом в формате с разделителями табуляции для импорта в Excel.
Вы также можете нажать Ctrl + Shift + F, чтобы экспортировать результаты в файл - он экспортируется как .rpt файл, который можно открыть с помощью текстового редактора и обработать для импорта excel.
Надеюсь, что это поможет другим, имеющим аналогичную проблему.