永发信息网

求教大神,删除tb表的a字段中的重复值,保留唯一值的sql语句该怎么写?

答案:5  悬赏:80  手机版
解决时间 2021-02-20 14:23
  • 提问者网友:我没有何以琛的痴心不悔
  • 2021-02-19 19:33
只知道筛选出重复号码的方法:select * from tb where a in(select a from tb group by a having COUNT(*)>1) 。

数据库是sqlserver2008
最佳答案
  • 五星知识达人网友:低音帝王
  • 2021-02-19 19:54
DELETe tb
WHERe ID 
IN(
select ID from tb 
where a in(select a  from tb  group by a  having COUNT(*)>1)  ) 注意WHERe语句 ID, 你把你的筛选语句中的 * 改成能唯一标识出这一行数据的ID列或者什么。
这样就可以实现删除了。
全部回答
  • 1楼网友:山君与见山
  • 2021-02-20 00:47
没有 表结构和唯一的键值 这个不好操作吧
  • 2楼网友:独钓一江月
  • 2021-02-19 23:44
delete from tb where id not in(select max(id) from tb group by a)
  • 3楼网友:零点过十分
  • 2021-02-19 22:42
简单的很 select DISTINCT * into tbtemp from tb where a in (.....) 然后 delete tb where a in (.....) 然后insert into tb select * from tbtmep
  • 4楼网友:狂恋
  • 2021-02-19 21:06
你好! 如果tb中有唯一确定值的比如id的话,可以不用having,直接用group by分组,删除除了最小或最大的id 也就是保留最小或最大的id 我的回答你还满意吗~~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯