本帖最后由 leeqx555 于 2014-12-22 17:44:37 编辑

解决方案 »

  1.   

    ID<>t.ID
    前面的ID不明确的,ID<>t.ID;所有的数据都可以找到一条可能性。
    ID>t.ID 一样的不明确,不过至少可以有一条是不成立的(最大那条ID)。
      

  2.   

    我不是太明白,那exists的运行原理是什么啊?它后面的子查询到底是怎么执行的啊?
      

  3.   

    EXISTS表示存在 得到的是一个BOOL值
    你可以把EXISTS里面的子查询与外面主表进行对比 
    如果存在满足条件的 就被删选出来 不满足条件的过滤掉 
      

  4.   


    我猜想,exists的效果是不是类似于 将主表的所有行逐行带入子查询执行所得出的结果集的并集?
      

  5.   

    那如果ID不是标识字段,而是GUID之类的没有大小之分的类型,这种写法不就没法用了吗?
      

  6.   

    用个子查询取分组最小值作保留,或者用ROW_NUMBER去JOIN一次判断删除都可