Query

數據清理 - 重複記錄

  • October 6, 2018

我想刪除數據庫中的重複記錄,但它比一個欄位更深入一點。

Status  ID
P   150013511822029
P   150022555544009
P   150022551512029
X   150014520920007
R   150022994940022
P   150023488655015

如果 status = R,則需要刪除記錄。如果status = X(這是一個反轉),則需要刪除X記錄和對應的P記錄(具有相同的ID)。

有人可以幫助新手嗎?謝謝!

您沒有指定您的平台,但這樣做應該相對容易:

DELETE FROM mytable
WHERE Status = 'R'
   OR Status = 'X'
   OR
   (
      Status = 'P'
      AND ID IN (SELECT ID FROM mytable WHERE Status = 'X')
   );

以下是一些您可能會覺得有幫助的連結:

刪除

在哪裡

與、或、非

引用自:https://dba.stackexchange.com/questions/196035