Insert distinct values from one table into another table

The following statement works with me.

insert into table1(col1, col2) select distinct on (col1) col1 col2 from table0 

The below query will also check the existing data in the Table2.

INSERT INTO Table2(Id) SELECT DISTINCT Id FROM Table1 WHERE Id NOT IN(SELECT Id FROM Table2);

insert into table1 (id)
select distinct id from table0

Whenever you think about doing something in a loop, step back, and think again. SQL is optimized to work with sets. You can do this using a set-based query without the need to loop:

INSERT dbo.table1(id) SELECT DISTINCT id FROM dbo.table0;

There are some edge cases where looping can make more sense, but as SQL Server matures and more functionality is added, those edge cases get narrower and narrower...

Tags:

Sql

Sql Server