Вставка отдельных значений из одной таблицы в другую таблицу
Итак, для каждого отдельного значения в столбце одной таблицы я хочу вставить это уникальное значение в строку другой таблицы.
list = select distinct(id) from table0
for distinct_id in list
insert into table1 (id) values (distinct_id)
end
Любые идеи относительно того, как это сделать?
Ответы
Ответ 1
Всякий раз, когда вы думаете о том, чтобы что-то делать в цикле, отступите назад и подумайте еще раз. SQL оптимизирован для работы с наборами. Вы можете сделать это, используя запрос на основе набора без необходимости в цикле:
INSERT dbo.table1(id) SELECT DISTINCT id FROM dbo.table0;
Есть несколько случаев, когда цикл может иметь больше смысла, но по мере того, как SQL Server созревает и добавляется больше функциональных возможностей, эти краевые случаи становятся уже и более узкими...
Ответ 2
insert into table1 (id)
select distinct id from table0
Ответ 3
Следующее утверждение работает со мной.
insert into table1(col1, col2) select distinct on (col1) col1 col2 from table0
Ответ 4
Приведенный ниже запрос также проверит существующие данные в таблице 2.
INSERT INTO Table2(Id) SELECT DISTINCT Id FROM Table1 WHERE Id NOT IN(SELECT Id FROM Table2);
Ответ 5
Другой Простой способ копирования отдельных данных с несколькими столбцами из одной таблицы в другую
Insert into TBL2
Select * from (Select COL1, ROW_NUMBER() over(PARTITION BY COL1 Order By COL1) AS COL2 From TBL1)T
where T.COL2 = 1
Ответ 6
INSERT INTO tableB SELECT * FROM tableA сгруппировать по запросу
Примечание: пожалуйста, удалите id из обеих таблиц, применяя вышеупомянутый запрос.