永发信息网

sql server 怎么删除表里重复数据

答案:4  悬赏:10  手机版
解决时间 2021-03-01 10:04
  • 提问者网友:半生酒醒
  • 2021-03-01 00:09
sql server 怎么删除表里重复数据
最佳答案
  • 五星知识达人网友:老鼠爱大米
  • 2021-03-01 01:34
方法很多,介绍一种如下。
例如:数据库zkhr里,有表tab,字段有id,xm,内容分别是两个1,张三;两个2,李四,处理步骤如下:
第一步:backup database zkhr to disk='d:\zkhr20160425'[把数据库先备份一份,预防后继编辑操作时出问题]
第二步:使用select distinct id,xm into lsb_tab from tab[lsb_tab是临时表,使用distinct就是只同样的数据只抽取一行,这样lsb_tab里的数据就是你要的内容];
第三步:truncate table tab[把原表里的数据清空]
第四步:insert tab(id,xm) select id,xm from lsb_tab[把临时表里的数据插回原表]
第五步:truncate table lsb_tab[删除临时表]
全部回答
  • 1楼网友:过活
  • 2021-03-01 03:48
--group 中的字段是重复的字段名称 delete tableName where tableID in ( select tableID from (select tableID,num=count(*) from tableName group by 字段1,字段2,tableID) as xx where xx.num>1)
  • 2楼网友:詩光轨車
  • 2021-03-01 02:40
1、必须保证表中有主键或者唯一索引,或者某列数据不能重复。只有这样,才可能使用一句SQL来实现。否则只能考虑其它办法。下面的语句,假定BB列是不重复的,删除后保存BB列值最大的那条记录。 delete from 表 where aa in (select aa from 表 group by aa having count(aa) > 1) and bb not in (select max(bb) from 表 group by aa having count(aa) > 1); 2、有多种写法: delete A from B where A.AA = B.AA delete A from A,B where A.AA = B.AA delete A where AA in (select AA from B) 3、使用into关键字: select * into 新表名 from 原表 4、取数据前3位,字段必须是类似char类型,使用类似substring这样的函数(SYBASE是substring,ORACLE是substr): select substring(字段,1,3) from 表名
  • 3楼网友:逐風
  • 2021-03-01 02:35
1 修改表biao结构,给添加一个列biao_id,自动增长填充,做为biao的主键 2 执行删除语句 delete * from biao where id in (select b2.id from biao b1,biao b2 where b1.chinese=b2.chinese and b1. japanese =b2. japanese and b1. english=b2. english and b1.t1=b2.t1 and b1.t2=b2.t2 and b1.t3=b2.t3 and b1.id
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯