SQL - 选择至少包含一个 NULL 值的列?



如何筛选至少具有一个空值的特定列的输出的位置?

因此,例如,在状态列中至少有一个 NULL 值的用户?

ID    |         Status
B        2017-10-03 08:00:00
B                NULL
G        2017-10-03 08:00:00
G        2017-10-03 08:00:00
G        2017-10-03 08:00:00
B        2017-10-03 08:00:00
D        2017-10-03 08:00:00
D                NULL
D                NULL

您可以使用聚合:

select id
from t
group by id
having count(*) <> count(status);

如果需要原始行,可以使用exists

select t.*
from t
where exists (select 1
from t t2
where t2.id = t.id and t2.status is null
);

我认为这是最简单,最快的方法。

select id
from t
where status is null
group by id;

查询:

select id
from tablename
where status is null

返回至少包含 1 个status的所有idnull和 。
所以像这样使用它:

select * from tablename
where id in (select id from tablename where status is null) 

如果您只想要ids:

select id
from tablename
group by id
having sum(status is null) > 0

相关内容

  • 没有找到相关文章

最新更新