SQL Server INSERT INTO SELECT: несколько методов эффективной вставки данных

В SQL Server оператор INSERT INTO SELECT позволяет вставлять данные из одной таблицы в другую. Эта мощная функция упрощает процесс копирования данных и выполнения преобразований «на лету». В этой статье мы рассмотрим различные методы и приведем примеры кода, чтобы продемонстрировать универсальность оператора INSERT INTO SELECT.

Метод 1: базовый синтаксис INSERT INTO SELECT
Самый простой метод — использовать базовый синтаксис оператора INSERT INTO SELECT. Вот пример:

INSERT INTO target_table (column1, column2, ...)
SELECT column1, column2, ...
FROM source_table
WHERE condition;

Метод 2: вставка данных в новую таблицу
Вы можете создать новую таблицу и вставить данные из существующей таблицы, используя оператор SELECT INTO в сочетании с оператором INSERT INTO SELECT. Вот пример:

SELECT column1, column2, ...
INTO new_table
FROM source_table
WHERE condition;
INSERT INTO target_table (column1, column2, ...)
SELECT column1, column2, ...
FROM new_table;

Метод 3: вставка данных с помощью соединений
Вы можете использовать возможности соединений для вставки данных из нескольких таблиц в целевую таблицу. Вот пример:

INSERT INTO target_table (column1, column2, ...)
SELECT t1.column1, t2.column2, ...
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.id
WHERE condition;

Метод 4: вставка данных с помощью агрегатных функций
Вы можете использовать агрегатные функции для выполнения вычислений и вставки агрегированных данных в целевую таблицу. Вот пример:

INSERT INTO target_table (column1, column2, ...)
SELECT column1, SUM(column2), ...
FROM source_table
GROUP BY column1;

Метод 5: вставка данных с помощью подзапросов
Вы можете использовать подзапросы в инструкции SELECT для фильтрации и управления данными перед их вставкой в ​​целевую таблицу. Вот пример:

INSERT INTO target_table (column1, column2, ...)
SELECT column1, column2, ...
FROM (
    SELECT column1, column2, ...
    FROM source_table
    WHERE condition
) subquery;

Инструкция INSERT INTO SELECT в SQL Server обеспечивает гибкий и эффективный способ вставки данных из одной таблицы в другую. Используя различные методы, такие как базовый синтаксис, создание новых таблиц, использование соединений, агрегатные функции и подзапросы, вы можете адаптировать процесс вставки данных в соответствии с вашими конкретными потребностями. Поэкспериментируйте с этими методами, чтобы оптимизировать задачи управления данными в SQL Server.