【问题标题】:SQL IF Exists or WHERE Exists?SQL IF 存在还是 WHERE 存在?
【发布时间】:2013-07-01 11:48:31
【问题描述】:

创建一个 INSERT 查询以将数据从另一个表 (YPTImport) 插入现有表 (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) 

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    使用这个查询:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-15
      • 2014-01-07
      • 2012-12-26
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 2010-12-21
      • 1970-01-01
      相关资源
      最近更新 更多