Sql 如何在属性的所有实例上使用where子句

Sql 如何在属性的所有实例上使用where子句,sql,where,Sql,Where,这个问题很模糊,所以我只举一个例子 如果我有一个数据库,其中包含一个国家属性,该国家可以多次出现,我如何检查另一个名为building的属性在该国家的所有实例中是否为null 你将如何为所有国家做到这一点?i、 e.检查同一国家/地区的所有建筑是否为空 country | building --+-- USA | null USA | null USA | 2 Germany | null Germany | null Nepal | null Spain

这个问题很模糊,所以我只举一个例子

如果我有一个数据库,其中包含一个国家属性,该国家可以多次出现,我如何检查另一个名为building的属性在该国家的所有实例中是否为null

你将如何为所有国家做到这一点?i、 e.检查同一国家/地区的所有建筑是否为空

country | building
      --+--
USA     | null
USA     | null
USA     | 2
Germany | null
Germany | null
Nepal   | null
Spain   | 3
如果选择国家,查询应返回德国和尼泊尔。完全是任意的例子,但它应该让人明白这一点。

在Postgres中检查:从国家/地区中选择国家/地区,从国家/地区中选择国家/地区,从建筑不为空的国家/地区按国家/地区顺序分组


其中countries是表名。

这里是另一个,使用group by:

select distinct country 
    from #table t 
    where not exists 
     (select 1 from #table t1 where t1.country = t.country and t1.building is not null)
SELECT country FROM countries group by country having sum(building) is null;

我已经在MySql和SQL Server中对此进行了测试。

请使用示例数据和所需结果编辑您的问题。如果有帮助,这称为关系划分