DECLARE @t TABLE(
    id_num INT IDENTITY(1,1) UNIQUE CLUSTERED,
    i INT
)INSERT INTO @t(i)
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 2 UNION ALL
SELECT 3DELETE @t
FROM @t AS t,(SELECT MIN(id_num) AS id_num,i FROM @t GROUP BY i) AS a
WHERE t.id_num <> a.id_num AND t.i = a.i/**//* DELETE FROM @t WHERE id_num NOT IN (SELECT MIN(id_num) FROM @t GROUP BY i) */SELECT * FROM @t

解决方案 »

  1.   

    delete tbl where id in ( select min(id) from tbl group by 重复字段 having count(id)>1)
      

  2.   

    sorry,应该是
    delete tbl where id in ( select max(id) from tbl group by 重复字段 having count(id)>1)
      

  3.   

    delete tbl where id in ( select max(id) from tbl group by 重复字段 having count(*)>1)
      

  4.   

    delete tbl where id not in ( select min(id) from tbl group by 重复字段 having count(*)>1)