,如果我有一個非常簡單的表:源碼 - 兩個記錄與某列不同的值存在,只能選擇某條記錄
id outcome position
-- ------- --------
1 TRUE 01
2 TRUE 01
2 FALSE 01
2 TRUE 02
其中兩個ID和位置可以跨多個記錄匹配;在這種情況下,我只想選擇FALSE結果,即當多個記錄中出現相同的ID和位置時。例如id = 1只有1條記錄,所以TRUE或FALSE在這裏可以。最後一條記錄的id = 2(與第2條和第3條記錄相同),但位置= 02,因此可以是TRUE或FALSE。但是因爲記錄2和3都共享相同的ID和位置,所以我只想選擇帶有錯誤結果的記錄。這應該是結果:c
id outcome position
-- ------- --------
1 TRUE 01
2 FALSE 01
2 TRUE 02
我該怎麼做?我知道我可以創建一個表,然後做類似於
delete from mytable
where exists
(select a.* from mytable a
join mytable b
on a.id = b.id and a.position = b.position
where a.outcome = TRUE)
但是我寧願避免創建一個表並刪除記錄。我寧願想在第一個實例中選擇我想要的記錄。
我看不出您的解釋如何與結果匹配。 –
嗨戈登 - 基本上在兩個不同的記錄中ID和位置相同,結果列中的FALSE值需要覆蓋具有TRUE值的記錄。所以我真的只想選擇結果爲FALSE的記錄,給定初始條件。 – brucezepplin
已編輯的問題澄清 – brucezepplin