zoukankan      html  css  js  c++  java
  • sql server重复数据处理

      在处理数据库表数据实,常常会遇到有重复数据的情况,这样的情况往往还就两条纪录重复,删除重复记录有好多方法,用程序循环来实现,也可用sql语句来实现,下面就介绍用sql语句实现的方法。

          首先从上千条记录中找出是重复的记录,sql语句:

       select
         keyColumn
    from
         testTable
    group by keyColumn
    having count(*)>1

           其中 keyColumn 就是关键列,以此来区分,其他数据。

           其次,找出要删除的一列,怎么找,当然要根据能区分两条重复记录的标识了,别告诉我没有,那就建立一个自增id吧,下面也已自增id来区分数据的:

       select
        
    max(id)
    from
         testTable
    where
         keyColumn
       in
    (
        
    select
             keyColumn
        
    from
             testTable
        
    group by keyColumn
        
    having count(*)>1
    )
    group by keyColumn,id

           上面是要删除两条记录中最大id的记录,min函数就是删除最小的。

           最后就是真正的要删除了,sql语句:

       delete from keyColumn
    where
         id
    in
    (
        
    select
            
    max(id)
        
    from
             testTable
        
    where
             id
    in
         (
            
    select
                 keyColumn
            
    from
                 testTable
            
    group by keyColumn
            
    having count(*)>1
         )
        
    group by keyColumn,id
    )

           ok,大功告成,有两条重复的记录就是这样被消灭掉了。

  • 相关阅读:
    strrchr
    tcpdump的源码分析
    C语言中字符串
    setsockopt、getsockopt详细介绍(转)
    linux下IPC通信
    setsockopt()用法(参数详细说明)(转)
    判断一个数是否为2的n次幂
    mysql 5.7.14 安装配置方法图文教程(转)
    JAVA中的protected(详解),以及和clone()方法有关的一些问题
    ASP.NET MVC 在控制器中接收视图表单POST过来的数据方法
  • 原文地址:https://www.cnblogs.com/fuyingke/p/1213435.html
Copyright © 2011-2022 走看看