SQL:如何在不同的列之间查找空值

时间:2018-07-20 11:28:50

标签: sql oracle

从一个列表中多个国家/地区的关联商店的就业价值不大于0的公司中,我想检索具有该就业国家/地区以外的其他国家/地区中具有无效就业值的ID。 在下面的情况下,我只想检索IDA。 这是一个Oracle数据库。

表结构

公司

| id    | store | country| employment
---------------------------------
|A  | 1     |   US      |   0           |
---------------------------------
|A  | 2     |   US      | 9         |
---------------------------------
|A  | 3     | DE        | null      |
---------------------------------
|B  | 4     | US        | 0         |
---------------------------------
|B  | 5     | DE        | null      |
---------------------------------
|B  | 6     | DE        | 4         |
---------------------------------
|B  | 7     | DE        | 4         |
---------------------------------

*请原谅我不知道如何在问题中以更好的格式呈现表结构。

1 个答案:

答案 0 :(得分:0)

这是您想要的吗?

select distinct id
from company c
group by id, country
having count(employment) <> count(*) and  -- there is at least one NULL value
       count(employment) > 0 ;  -- there is at least one not NULL value