我正在尝试过滤掉一些记录,但无法制作它。
以此表为例,
ID Status Name
1 NULL ItemA
2 2 ItemB
3 2 ItemA
4 NULL ItemC
我尝试将名称显示为仅具有NULL状态的结果,如果对于状态为2的项目,则不显示它。在这种情况下,结果只有ItemC
,因为即使ItemA
的一条记录具有NULL状态,也会有另一条状态为2的ItemA记录。
我被困在这里。
答案 0 :(得分:1)
如果您想要所有状态为NULL
的名称,那么您可以使用聚合:
select name
from t
group by name
having max(status) is null;
答案 1 :(得分:0)
执行此操作的一种方法是使用except
或minus
,具体取决于所使用的数据库。请注意,这不适用于MySQL。
select * from tablename
where name in
(
select name from tablename where status is null
except --minus if you are using Oracle
select name from tablename where status is not null
)
答案 2 :(得分:0)
VKP的答案更适合我的查询,但戈登的答案很好。 再次感谢你们。