• SQLServer2000删除重复数据


    *******************************************
    SQLServer2000删除重复数据(总结)
    *******************************************

     
    一、具有主键的情况 
     
    I.具有唯一性的字段id(为唯一主键) 

    delete  用户表    
    where  id  not  in    
    (  
    select  max(id)  from  用户表  group  by  col1,col2,col3...  
    )  


    group  by  子句后跟的字段就是你用来判断重复的条件,如只有col1,  
    那么只要col1字段内容相同即表示记录相同。  
     
    II.具有联合主键 
     
    假设col1+','+col2+','...col5  为联合主键

    (找出相同记录)

    select  *  from    用户表  where  col1+','+col2+','...col5  in  
    (  
      
    select  max(col1+','+col2+','...col5)  from  用户表    
      
    group  by  col1,col2,col3,col4
      
    having  count(*)>1     
    )  


    group  by  子句后跟的字段就是你用来判断重复的条件,  
    如只有col1,那么只要col1字段内容相同即表示记录相同。  
     
    或者:
    (找出相同记录)

    select  *  from  用户表  where  exists  (select  1  from  用户表  x  where  用户表.col1 =  x.col1  and    
    用户表.col2
    =  x.col2  group  by  x.col1,x.col2  having  count(*)  >1)  


     
    III:判断所有的字段 

       select  *  into  #aa  from  用户表  group  by  id1,id2,....  
       
    delete  用户表    
       
    insert  into  用户表 select  *  from  #aa  


     
    二、没有主键的情况  
     
    I.用临时表实现 

    select  identity(int,1,1)  as  id,*  into  #temp  from  用户表  
    delete  #temp    
    where  id  not  in    
    (  
       
    select  max(id)  from  #  group  by  col1,col2,col3...  
    )  
    delete  用户表  ta  
    inset  
    into  ta(...) select  .....  from  #temp  

     
    II.用改变表结构(加一个唯一字段)来实现

    alter  用户表  add    newfield  int  identity(1,1)  
    delete  用户表  
    where  newfield  not  in  
    (  
    select  min(newfield)  from  用户表  group  by  除newfield外的所有字段  
    )  
    alter  用户表  drop  column  newfield

  • 相关阅读:
    Javascript 计时事件说明
    结合RibbonControl设计MDI窗体,在子窗体关闭后,顶部显示额外的控制栏残影
    交叉验证[转]
    [转载】我的数据挖掘之路 by wrchow
    《这些道理没有人告诉过你》摘记
    2017BUAA软工第0次作业
    SSM框架+slf4j 以Gradle实现
    RMQ(ST算法)
    博客园装饰
    【转载】UVa 11464 Even Parity 偶数矩阵
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/1643697.html
Copyright © 2020-2023  润新知