distinct
キーワードを使用して、一意のエントリを作成できます。
select distinct
FirstName,
LastName,
CompanyName
from MyTable
したがって、次のコマンドを発行すると、新しいテーブルに個別の値のみが追加されます
insert into newTable
(
FirstName,
LastName,
CompanyName
)
select distinct
FirstName,
LastName,
CompanyName
from MyTable
where not exists (
select 1 from newTable
where newTable.FirstName = MyTable.FirstName
and newTable.LastName = MyTable.LastName
and newTable.CompanyName = MyTable.CompanyName
)
別の新しい値をテーブルに追加するもう 1 つの良い方法は、'MERGE' コマンドを使用することです。
merge newtable as target
using (select distinct
FirstName,
LastName,
CompanyName
from MyTable
) as source
on target.FirstName = target.FirstName
and target.LastName = target.LastName
and target.CompanyName = target.CompanyName
when not matched by target then
insert (FirstName,
LastName,
CompanyName)
values (target.FirstName,
target.LastName,
target.CompanyName);
この MERGE
コマンドは、テーブルを同期するタイミングを制御するオプションを提供します。