[英]How can I select all the rows which do not share a column value with another row which is null?
我知道標題是 vomit 這個詞,但我不確定如何更簡潔地說出來。
我有一個包含 A 列和 B 列的非常大的表。這個表應該有一個不尋常的屬性:對於 A 列的每個值,應該至少有一行 B 的值為 null。但是,這個表有一些不遵守此屬性的異常行,我想識別它們以便我可以清理表格。
id A B
----------
1 c e
2 c f
3 c NULL
4 d e
5 d f
6 d g
在本例中,A列為c的行滿足條件,因為第3行的B值為NULL。但是,A列為d的行不滿足條件,因為不存在A列為d且B列為null。我想運行一個返回 d 的查詢。
你可以試試這個
SELECT DISTINCT A from Test where A not in (
select A from Test where B is null );
您還可以使用聚合:
select d
from t
group by d
having count(*) = count(b);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.