刪除沒有主鍵的SQL 表中的重複記錄
在沒有主鍵的情況下,識別資料庫中的重複記錄可能具有挑戰性。但是,利用視窗函數和邏輯運算子的組合可以有效刪除重複項。
在提供的範例中,目標是從 Employee 表中刪除具有相同 EmpId 和 EmpSSN 值的記錄。要實現此目的:
ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt
SELECT SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
DELETE SUB FROM (SELECT ROW_NUMBER() OVER (PARTITION BY EmpId, EmpName, EmpSSN ORDER BY EmpId) cnt FROM Employee) SUB WHERE SUB.cnt > 1
透過以下步驟,可以有效刪除 Employee 表中的重複記錄,無需主鍵即可保證資料的完整性。
以上是如何刪除沒有主鍵的SQL表中的重複記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!