我有一个包含名称和位列的表,指示名称是否已删除(1)或不是(0)。我正在尝试编写一个返回所有已删除名称的查询,除非该名称也未被删除(名称可能会在表格中显示多次)。希望有意义!
以下是一些示例数据:
+------+-------+
|Name |Deleted|
+------+-------+
|Bob | 1 |
+------+-------+
|Joe | 1 |
+------+-------+
|Joe | 0 |
+------+-------+
|Bob | 1 |
+------+-------+
|Sam | 1 |
+------+-------+
结果将是Bob
和Sam
:
两个人都是Bob'条目是' 1'
单个Sam条目是' 1'。
Joe不会参与结果,因为他是' 1'和' 0'。
感谢您的帮助!
答案 0 :(得分:3)
一种方法使用聚合:
select name
from t
group by name
having min(deleted) = 1;
答案 1 :(得分:1)
SELECT T.Name
FROM Table T
WHERE T.Deleted = 1
AND NOT EXISTS (SELECT *
FROM Table T2
WHERE T2.Name = T.Name
AND T2.Deleted = 0)