坚持如何查询此结果集。
A B C
162 0 NULL
162 1 NULL
162 2 NULL
163 0 000
163 1 000
163 2 000
164 0 000
164 1 NULL
164 2 NULL
我想只显示这些结果
A B C
162 0 NULL
162 1 NULL
162 2 NULL
164 0 000
164 1 NULL
164 2 NULL
如果列A的所有唯一实例都有值,我不想返回结果。因此,在此示例中,新结果集已从结果集中删除163,因为包含163的所有行都具有值(其为000)。 其他显示是因为该行的一个实例包含NULL,并且应显示它所有的唯一行。
我确实尝试过嵌套查询并玩弄GROUP BY,但还是无法破解它。
有什么建议吗?
谢谢。
答案 0 :(得分:1)
使用EXISTS
查找这些行:
select A, B, C
from tablename t1
where EXISTS (select 1 from tablename t2
where t1.A = t2.A
and t2.C IS NULL)
或者做一个JOIN
:
select A, B, C
from tablename t1
JOIN (select DISTINCT A
from tablename
where C IS NULL) t2 ON t1.A = t2.A