love fish大鵬一曰同風起,扶搖直上九萬里

          常用鏈接

          統計

          積分與排名

          friends

          link

          最新評論

          刪除數據庫中重復記錄的SQL語句(轉)

          在幾千條記錄里,存在著些相同的記錄,如何能用SQL語句,刪除掉重復的呢?

          1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷
          select?*?from?people
          where?peopleId?in?(select??peopleId??from??people??group??by??peopleId??having??count(peopleId)?>?1)

          2、刪除表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷,只留有rowid最小的記錄
          delete?from?people?
          where?peopleId??in?(select??peopleId??from?people??group??by??peopleId???having??count(peopleId)?>?1)
          and?rowid?not?in?(select?min(rowid)?from??people??group?by?peopleId??having?count(peopleId?)>1)

          3、查找表中多余的重復記錄(多個字段)?
          select?*?from?vitae?a
          where?(a.peopleId,a.seq)?in??(select?peopleId,seq?from?vitae?group?by?peopleId,seq??having?count(*)?>?1)

          4、刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
          delete?from?vitae?a
          where?(a.peopleId,a.seq)?in??(select?peopleId,seq?from?vitae?group?by?peopleId,seq?having?count(*)?>?1)?and?rowid?not?in?(select?min(rowid)?from?vitae?group?by?peopleId,seq?having?count(*)>1)

          5、查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
          select?*?from?vitae?a
          where?(a.peopleId,a.seq)?in??(select?peopleId,seq?from?vitae?group?by?peopleId,seq?having?count(*)?>?1)?and?rowid?not?in?(select?min(rowid)?from?vitae?group?by?peopleId,seq?having?count(*)>1)


          posted on 2007-03-20 17:07 liaojiyong 閱讀(5134) 評論(7)  編輯  收藏 所屬分類: MSSQL

          評論

          # re: 刪除數據庫中重復記錄的SQL語句(轉) 2007-10-10 16:27 haung

          3、查找表中多余的重復記錄(多個字段)
          select * from vitae a
          where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)


          謝過!行不通!
            回復  更多評論   

          # re: 刪除數據庫中重復記錄的SQL語句(轉) 2007-11-29 09:53 黑皮

          樓上豬啊,沒有經過自己思考,就下結論  回復  更多評論   

          # re: 刪除數據庫中重復記錄的SQL語句(轉) 2008-11-24 11:01 阿道夫

          你自己試過了嗎?就在這說,我怎么弄也刪除不了啊。你的rowid系統會提醒你這個列名無效,rowid是什么東西,你清楚嗎?  回復  更多評論   

          # re: 刪除數據庫中重復記錄的SQL語句(轉) 2008-12-27 23:18 evilisland

          @阿道夫
          rowid中是一個代稱,要根據你的自己情況來變  回復  更多評論   

          # re: 刪除數據庫中重復記錄的SQL語句(轉) 2010-05-14 11:44 蜀山幽狼

          好東西,我轉走了。謝謝樓上的好東西。  回復  更多評論   

          # re: 刪除數據庫中重復記錄的SQL語句(轉)[未登錄] 2011-02-14 14:04 kai

          如果沒有rowid這字段可以利用的話,那不是行不通了  回復  更多評論   

          # re: 刪除數據庫中重復記錄的SQL語句(轉) 2011-11-01 11:45 ··

          @阿道夫
          在ORACLE里的東西  回復  更多評論   

          主站蜘蛛池模板: 军事| 明水县| 淮南市| 教育| 黔南| 岳池县| 靖安县| 蕉岭县| 蒲城县| 额敏县| 塔河县| 丹东市| 桑植县| 县级市| 罗甸县| 贵州省| 麟游县| 永胜县| 遂溪县| 台安县| 呼图壁县| 吴桥县| 栾城县| 阿图什市| 阳江市| 辽宁省| 湛江市| 来安县| 博乐市| 兴义市| 朝阳市| 屏山县| 贺兰县| 宁海县| 韩城市| 芒康县| 墨竹工卡县| 麻城市| 自贡市| 聂拉木县| 革吉县|