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,大功告成,有两条重复的记录就是这样被消灭掉了。

  • 相关阅读:
    spring mvc + kafka实战
    springboot 实现文件下载功能
    vue前端文件下载
    父类和子类初始化顺序
    几种单例模式
    全链路压测注意点
    压力测试-ab
    压力测试-locust讲解
    Java httpClient 中get, post ,put(form-data & raw), delete方法使用
    RequestBody 和RequestEntity使用
  • 原文地址:https://www.cnblogs.com/fuyingke/p/1213435.html
Copyright © 2011-2022 走看看