SQL IF存在还是存在?

时间:2013-07-01 11:48:32

标签: sql sql-server-2008 sql-server-2008-r2

创建INSERT查询以将数据从另一个表(YPmpmport)插入现有表(YPImport),问题是YPTImport中的一些数据已存储在YPImport表中,因此如果我执行标准导入,我将创建重复项在YPImport表中。

我可以使用3个字段来比较数据,以确保没有重复项,CNumber,位置和日期。因此,如果CNumber,Location和Date匹配,那么我不想插入行。

我尝试使用WHERE NOT EXISTS并在YPImport表上使用INNER JOIN进行选择以仅选择重复项,但使用WHERE NOT EXISTS它返回0行。

SELECT item,
       CNumber,
       Location,
       Date,
FROM   YPTImport
WHERE  NOT EXISTS (SELECT a.item,
                          a.CNumber,
                          a.Location,
                          a.Date,
                   FROM   YPTImport a
                          INNER JOIN YPImport b
                            ON a.CNumber = b.CNumber
                               AND a.Location = b.Location
                               AND a.Date = b.Date) 

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

使用此查询:

SELECT
a.item,
a.CNumber,
a.Location,
a.Date
FROM YPTImport a
WHERE NOT EXISTS
(SELECT *
FROM YPImport b 
WHERE a.CNumber = b.CNumber AND a.Location = b.Location AND a.Date= b.Date)