我有一个没有主键列的表。第一列的类型是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中的复杂查询
辉煌!有用!谢谢! –