SQL Server INSERT INTO SELECT: подробные примеры и методы

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

Метод 1: базовый INSERT INTO SELECT
Давайте начнем с самой простой формы оператора INSERT INTO SELECT. Этот метод вставляет все столбцы из исходной таблицы в целевую таблицу.

INSERT INTO target_table
SELECT * FROM source_table;

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

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

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

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

Метод 4: объединение таблиц
Инструкцию INSERT INTO SELECT также можно использовать для объединения нескольких таблиц и вставки полученных данных в целевую таблицу.

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

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

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