加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 数据库 > MsSql > 正文

sql查询多字段重复记录的sql语句

发布时间:2023-02-17 09:48:49 所属栏目:MsSql 来源:互联网
导读:图文解释 当一个网站的数据太多的时候,或者我们平时采集数据的时候,很容易产生重复数据记录,重复数据记录对网站没有任何意义,这个时候我们需要删除重复的数据,只保留一条即可。下面分享sql删除重复记录的sql语句。 正确的SQL查询多字段重复记录的sql语
  图文解释
  当一个网站的数据太多的时候,或者我们平时采集数据的时候,很容易产生重复数据记录,重复数据记录对网站没有任何意义,这个时候我们需要删除重复的数据,只保留一条即可。下面分享sql删除重复记录的sql语句。
 
  正确的SQL查询多字段重复记录的sql语句,下面这句sql语句,是查询药品表aa里面,药品名称、药品批号、药品规格完全一致的数据。
 
  select p1.yaoming,p1.wenhao,p1.guige from aa p1,aa p2 where
  p1.id<>p2.id and p1.yaoming = p2.yaoming and p1.wenhao = p2.wenhao
   and p1.guige = p2.guige
  上面这句经过编程之家测试,完全正确,可以查询多个字段重复的数据记录,还可以继续扩展字段4、字段5等等。
 
  那么sql删除重复记录的方法
  几个删除重复记录的sql语句
 
  1.用rowid方法  
 
  2.用group by方法  
 
  3.用distinct方法  
 
  1。用rowid方法
  查数据:
  select * from table1 a where rowid !=(select   max(rowid) from table1 b where a.name1=b.name1 and a.name2=b.name2......)
  删数据:
  delete   from table1 a where rowid !=(select   max(rowid) from table1 b where a.name1=b.name1 and a.name2=b.name2......)  
 
  2.group by方法
 
  查数据: select count(num), max(name) from student --列出重复的记录数,并列出他的name属性 group by num having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
  删数据:
  delete from student  group by num  having count(num) >1这样的话就把所有重复的都删除了。  
 
  3.用distinct方法 -对于小的表比较有用  
 
  create table table_new as   select distinct *   from table1 minux truncate table table1;
  insert into table1 select * from table_new

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读