将值从一个表插入另一个表

w3n*_*n2u 1 sql sql-server-2008

我有以下SQL.我试图将ClientNamefrom Clients插入到pName列中CommisionPickups.我需要确保所有值都是唯一的.

insert into CommisionPickups (pName) 
   (select ClientName 
    from Clients  
    where ClientName <> CommisionPickups.pName)
Run Code Online (Sandbox Code Playgroud)

das*_*ght 5

您不能<>用来检查唯一性.要确保所有名称都是唯一的,您需要确保从中选择唯一的名称CommisionPickups,并且您插入的名称尚不存在Clients.使用NOT EXISTSCommisionPickups,并且DISTINCTClients,是这样的:

insert into CommisionPickups (pName) 
(select DISTINCT c.ClientName from Clients c
where NOT EXISTS (SELECT 1 FROM CommisionPickups cp
                  WHERE c.ClientName = cp.pName)
)
Run Code Online (Sandbox Code Playgroud)