SQL中删除同一字段中重复的值

/////////////////////目地:ZDJZ_DIS中 name字段有重复的值,删除重复的值
DELETE *
FROM ZDJZ_DIS
WHERE NAME  IN (select NAME from ZDJZ_DIS group by NAME having count(NAME) >1);
上面的做法会删除掉所有的相同的值,包括你想要的,只要重复就删除

DELETE *
FROM ZDJZ_DIS
WHERE ID  in (select min(ID) from ZDJZ_DIS group by NAME having count(NAME)>1);
1有没有重复的某项值  2如果有的话,选择ID最小的那个

结合起来
DELETE *
FROM ZDJZ_DIS
WHERE NAME  IN (select NAME from ZDJZ_DIS group by NAME having count(NAME) >1)
and ID not in (select min(ID) from ZDJZ_DIS group by NAME having count(NAME)>1);

  

posted @ 2015-11-07 20:48  helloworld1314  阅读(855)  评论(0编辑  收藏  举报