【问题标题】:insert records except in sql server除了在 sql server 中插入记录
【发布时间】:2017-12-21 10:34:42
【问题描述】:

我有两张桌子 t1 和 t2。 t1 有 10k 条记录, t2 有 2k 条记录。 t2 的 2k 条记录存在于 t1 中。 我想要 t2 中不存在的 t1 的 8k 不同记录。

我这样做如下:

select id, second_telphon from t1
except 
select id, second_telphon from t2

但是,我仍然获得了所有 10k 条记录。 “except”关键字不起作用吗?

我怎样才能做到这一点?

【问题讨论】:

  • 表格中是否有任何独特的列可以识别天气是否重复
  • Except 确实有效,但是如果没有看到您的表定义(包括排序规则),那么就无法猜测它为什么不适合您。

标签: sql-server sql-server-2008 sql-server-2016


【解决方案1】:

您可以执行联接以从表中获取唯一数据。

就像表 t1 和 t2 一样,您可以执行左连接或右连接。

示例:

SELECT T1.*
    FROM T1
    WHERE NOT EXISTS(SELECT NULL
                         FROM T2
                         WHERE T1.ID = T2.ID 
                             AND T1.Date = T2.Date
                             AND T1.Hour = T2.Hour)


OR .


SELECT T1.*
    FROM T1
        LEFT JOIN T2
            ON T1.ID = T2.ID
                AND T1.Date = T2.Date
                AND T1.Hour = T2.Hour
    WHERE T2.ID IS NULL

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT * 
    FROM T1
    WHERE NOT EXISTS(SELECT id,second_telphon FROM t2)
    

    如果 ID 是唯一值,也试试这个:

    SELECT * 
    FROM T1
    WHERE ID NOT IN(SELECT ID FROM t2)
    

    【讨论】:

      【解决方案3】:

      您可以尝试联合,然后进行聚合以限制第一个表中没有被第二个表重复的那些记录:

      SELECT id, second_telphon
      FROM
      (
          SELECT id, second_telphon FROM t1
          UNION ALL
          SELECT id, second_telphon FROM t2
      ) t
      GROUP BY id, second_telphon
      HAVING COUNT(*) = 1;
      

      如果一条记录被定义为idsecond_telphon 对,在联合之后只有一条记录,这意味着这条记录对于第一个表是唯一的。

      【讨论】:

        【解决方案4】:

        只做左连接

            select t1.id,t1.second_telphon  from t1 
               left  join  t2 on 
               t1.id  = t2.id  
              and  t1.second_telphon =t2.second_telphon
           where t2.id   is null
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-17
          • 2011-05-09
          • 2016-03-07
          • 1970-01-01
          • 1970-01-01
          • 2020-11-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多