我有一個沒有主鍵列的表。第一列的類型是DATETIME,名稱爲DateTime,其餘的類型爲NVARCHAR(16)。 AlarmStatus列中的值可以是'0'或'1'。 因此,我的表可能有多行具有相同的DateTime和不同的AlarmStatus值。我需要一種方法來刪除具有相同DateTime的所有行,只要它們中的任何一個在AlarmStatus列中沒有'1'。 SQLite。 DELETE查詢中的複雜條件?
1
A
回答
1
DELETE
FROM yourTable
WHERE DateTime IN
(
SELECT DateTime
FROM yourTable
GROUP BY DateTime
HAVING SUM(CASE WHEN AlarmStatus = '1' THEN 1 ELSE 0 END) = 0
)
1
這可以用correlated subquery來完成:你想刪除其與同DateTime
值和一組AlarmStatus
沒有行存在行:
DELETE FROM MyTable
WHERE NOT EXISTS (SELECT *
FROM MyTable AS T2
WHERE T2.DateTime = MyTable.DateTime
AND T2.AlarmStatus = '1');
另外,得到的名單所有具有要保留的狀態的時間戳,並檢查要刪除的行是否沒有這些行:
DELETE FROM MyTable
WHERE DateTime NOT IN (SELECT DateTime
FROM MyTable
WHERE AlarmStatus = '1');
+0
謝謝@CL。!工作解決方案呢! –
相關問題
- 1. 複雜的SQL查詢(DELETE)?
- 2. 複雜DELETE SQL查詢
- 3. SQLite - 複雜查詢
- 4. SQLite的 - 複雜的查詢
- 5. 複雜的查詢與SQLite
- 6. SQLite的複雜SQL查詢
- 7. 複雜的SQLite查詢給
- 8. SQL查詢中複雜的條件
- 9. 查詢中的複雜條件排序
- 10. SQLite複雜查詢幫助
- 11. 複雜取代SQLITE查詢
- 12. Android中的SQLite的複雜查詢
- 13. MySQL的條件查詢 - 複雜
- 14. 複雜的條件SQL查詢
- 15. MySQL DELETE查詢條件
- 16. SQLite中的條件查詢
- 17. 複雜的分組SQLite的查詢
- 18. 需要構建複雜的SQLite查詢
- 19. 春蒙戈條件的複雜查詢匹配查詢實體
- 20. CakePHP複雜查找條件
- 21. 複雜查詢
- 22. 複雜查詢
- 23. 複雜查詢
- 24. Cassandra中的複雜查詢
- 25. django中的複雜查詢
- 26. ZEND中的複雜查詢
- 27. ELK中的複雜查詢?
- 28. CakePHP中的複雜查詢
- 29. mysql中的複雜查詢
- 30. sql中的複雜查詢
輝煌!有用!謝謝! –