0
A
回答
1
我會寫這是一個選擇,所以你不要複製粘貼和軟管的東西accidentally-你可以運行它,並檢查它選擇要刪除的行
SELECT *
FROM table t1
WHERE
t1.c3 IS NULL AND
EXISTS(
SELECT null FROM table t2
WHERE t1.c1 = t2.c1 AND COALESCE(t1.c2, 'value that will never appear in the table') = COALESCE(t2.c2, 'value that will never in the table') AND t2.c3 IS NOT NULL
)
轉換刪除應該只是一個刪除替換SELECT *的情況,但如果它不工作了不要發表評論..
編輯備註:
使用合併來演示如何確保行X上的null的c2值等於行Y上的另一個空值爲c2的值。重要的是,您爲'值永遠不會出現在表中的'值選擇的字符串'在sql中的兩次出現都是相同的,並且它永遠不會出現在表中,否則具有空值的行將與其他具有實際值的行匹配
相關問題
- 1. 正在刪除重複記錄只有1行中的SQL
- 2. 標記並刪除只有在兩列之間交換的值不同的行作爲副本
- 3. 刪除與空白記錄 - MySQL的
- 4. 如何刪除只有@RID的記錄
- 5. 刪除,如果存在記錄,如果記錄不存在
- 6. 刪除重複的值的行的所有副本中的R
- 7. Datarepeater刪除只刪除最高記錄
- 8. SQL:只有在沒有較新的匹配記錄時才刪除舊記錄?
- 9. MySQL刪除只存在於子表/ cakephp更新中的記錄?
- 10. awk腳本刪除單個記錄,而不只是組記錄
- 11. 在記事本++中,刪除空行和刪除空行(包含空白字符)有什麼區別?
- 12. 刪除記錄的副本,但留下1(無標識)
- 13. 只有在記錄不存在的情況下插入記錄
- 14. 不能刪除記錄與PHP腳本
- 15. 如果記錄存在刪除它?
- 16. 刪除記錄/哪裏存在問題
- 17. 刪除所有表中存在的所有記錄
- 18. 刪除記錄記錄存儲
- 19. 從Jupyter筆記本中刪除空行
- 20. 刪除模型僅存在於本地的記錄Ember
- 21. 刪除www。在目錄中只有
- 22. 刪除所有記錄與JOIN
- 23. 刪除空字段的記錄,並與移動值的字段再創紀錄
- 24. 的Oracle SQL不存在刪除我的所有記錄
- 25. 如何刪除每列只有空值的行?
- 26. 刪除記錄與零號
- 27. 刪除記錄與零:NilClass
- 28. 刪除與condtion記錄
- 29. 刪除所有在表中iPhone SDK中的記錄與sqlite3的
- 30. 只讀取軟刪除的記錄
我認爲就是這樣!非常感謝你。 – geek2000
我運行這個實際的表。至少有一種情況,這是行不通的。 :(例如,如果我有兩個記錄('B',null,'15'),('B',null,null)。代碼將不會返回('B',null,null)。除了從子查詢中刪除c2以外,我有12列,其中任何一列都可以爲空值 – geek2000
從技術上來說,null永遠不會與其他任何東西相等,甚至不會是另一個null,但是如果你正在創建一個業務邏輯決策,在c2上的null與另一行中的null相同,所以log與c1是相同的,那麼你可以使用coalesce將null轉換爲等價值。我將編輯我的答案來演示 –