簡體   English   中英

我怎樣才能 select 所有不與另一行 null 共享列值的行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM