SQL-запрос можно выгрузить в Excel несколькими способами. Для разовой выгрузки проще скопировать результат из SSMS или сохранить его в CSV. Для регулярного отчета лучше подключить Excel к базе через Power Query, чтобы обновлять данные кнопкой, а не каждый раз вручную копировать таблицу
Перед выгрузкой проверьте сам запрос: он должен возвращать только нужные столбцы, понятные названия и ограниченный объем данных. Excel плохо подходит для миллионов строк и тяжелых выгрузок без подготовки
Способ 1. Скопировать результат из SSMS
В SSMS выполните запрос:
SELECT
order_id,
customer_name,
total_sum,
created_at
FROM orders
WHERE created_at >= '2026-01-01'
ORDER BY created_at DESC;
В нижней таблице результата выделите строки, нажмите Copy with Headers и вставьте в Excel. Это быстрый способ для небольшого отчета, когда не нужна автоматизация
Минус очевидный: при следующем обновлении придется повторить действие руками. Еще один риск — случайно скопировать не все строки или потерять заголовки
Способ 2. Сохранить результат в CSV
В SSMS можно включить результат в файл или сохранить таблицу результата как CSV. Для аккуратной выгрузки лучше заранее привести имена столбцов к понятному виду:
SELECT
order_id AS [Номер заказа],
customer_name AS [Клиент],
total_sum AS [Сумма],
CONVERT(date, created_at) AS [Дата]
FROM orders
WHERE created_at >= '2026-01-01';
После сохранения CSV откройте его в Excel через импорт данных, а не двойным кликом, если есть проблемы с кодировкой, разделителями или датами. При импорте можно выбрать UTF-8, разделитель и типы столбцов
Способ 3. Power Query в Excel
Если отчет нужен регулярно, используйте Power Query:
- Откройте Excel
- Перейдите в Data -> Get Data
- Укажите сервер и базу
- Вставьте SQL-запрос в Advanced options
- Загрузите результат на лист или в модель данных
Преимущество Power Query в том, что пользователь сможет обновлять отчет. Но запрос должен быть безопасным и читающим данные. Не стоит вставлять туда UPDATE, DELETE или служебные команды
Как подготовить запрос для Excel
Хороший запрос для выгрузки:
- не использует
SELECT * - дает понятные имена столбцов через
AS - фильтрует период или статус
- сортирует результат
- приводит даты и числа к ожидаемому виду
- не возвращает технические поля, если они не нужны в отчете
Пример:
SELECT
c.name AS [Клиент],
COUNT(o.id) AS [Количество заказов],
SUM(o.total_sum) AS [Сумма заказов]
FROM customers c
JOIN orders o ON o.customer_id = c.id
GROUP BY c.name
ORDER BY SUM(o.total_sum) DESC;
Такую таблицу легче читать в Excel, чем сырые строки из нескольких таблиц
Мини-практика
Создайте учебный запрос с тремя столбцами: имя клиента, количество заказов и сумма. Сначала скопируйте результат в Excel вручную, затем сохраните CSV и откройте его через импорт. Сравните, где корректнее сохранились заголовки, даты и русские буквы
Частые ошибки
- Выгружают
SELECT *и получают лишние служебные поля - Открывают CSV двойным кликом и получают сломанную кодировку
- Не задают псевдонимы столбцов
- Выгружают слишком много строк для Excel
- Используют точку и запятую или запятую как разделитель без учета региональных настроек
- Вставляют в Power Query запрос, который меняет данные
Что почитать дальше по SQL
Если нужен общий маршрут по теме, откройте рубрику SQL. Для соседних задач пригодятся эти разборы:
- Как написать SQL-запрос в Excel: через Power Query и подключение к базе
- SQL Server и SSMS: установка и первый запрос
- CSV в SQL: как загрузить файл в базу данных
- SQL Server Management Studio скачать: как правильно установить SSMS



