首頁 > 資料庫 > mysql教程 > 如何刪除沒有主鍵的SQL表中的重複記錄?

如何刪除沒有主鍵的SQL表中的重複記錄?

DDD
發布: 2025-01-04 22:23:39
原創
586 人瀏覽過

How to Delete Duplicate Records in SQL Tables Without a Primary Key?

在SQL 中刪除沒有主鍵的重複記錄

重複記錄會對資料完整性帶來挑戰,導致結果不準確和數據不一致。在表缺少主鍵的情況下,識別和刪除重複記錄可能會更加複雜。

在缺少主鍵的情況下,消除重複記錄的一種方法是識別特定欄位中具有匹配值的記錄,例如員工 ID 和社會安全號碼。為了實現這一點,可以使用子查詢根據所需的條件對錶進行分區,並為每個記錄分配一個序號。

然後可以使用 DELETE 語句透過篩選來刪除具有重複欄位值的記錄行號大於 1 的行。這可確保僅保留每個唯一值集的第一次出現。

考慮以下 SQL查詢:

DELETE SUB FROM
(SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
FROM Employee) SUB
WHERE SUB.cnt > 1
登入後複製

在此查詢中,子查詢計算每筆記錄的行號,並按 EmpId、EmpName 和 EmpSSN 欄位進行分區。 ORDER BY 子句確保行號依序分配。然後,DELETE 語句會刪除所有行號大於 1 的記錄,從而有效刪除重複項。

以上是如何刪除沒有主鍵的SQL表中的重複記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板