Sql 仅选择每个行号的所有值均为空的项目
我有一张类似以下的桌子:Sql 仅选择每个行号的所有值均为空的项目,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一张类似以下的桌子: | item_number | line_number | value | |-------------|-------------|--------| | 1 | 1 | (null) | | 1 | 2 | 10 | | 1 | 3 | (null) | | 2 | 1 | (null) | |
| item_number | line_number | value |
|-------------|-------------|--------|
| 1 | 1 | (null) |
| 1 | 2 | 10 |
| 1 | 3 | (null) |
| 2 | 1 | (null) |
| 2 | 2 | (null) |
| 2 | 3 | (null) |
| 3 | 1 | 5 |
| 3 | 2 | (null) |
| 3 | 3 | (null) |
| item_number |
|-------------|
| 2 |
有三个唯一的项目(根据项目编号
),每个项目有三个行编号
。我想返回每个行号的值为空的所有项目
对于此表,我将返回以下内容:
| item_number | line_number | value |
|-------------|-------------|--------|
| 1 | 1 | (null) |
| 1 | 2 | 10 |
| 1 | 3 | (null) |
| 2 | 1 | (null) |
| 2 | 2 | (null) |
| 2 | 3 | (null) |
| 3 | 1 | 5 |
| 3 | 2 | (null) |
| 3 | 3 | (null) |
| item_number |
|-------------|
| 2 |
,因为只有项目编号=2
具有其所有行编号
的值为空
DDL
CREATE TABLE tbl_A (
item_number INT,
line_number INT,
value INT,
);
INSERT INTO tbl_A VALUES (1, 1, NULL), (1, 2, 10), (1, 3, NULL);
INSERT INTO tbl_A VALUES (2, 1, NULL), (2, 2, NULL), (2, 3, NULL);
INSERT INTO tbl_A VALUES (3, 1, 5), (3, 2, NULL), (3, 3, NULL);
CREATE TABLE tbl_B (
item_number INT
);
INSERT INTO tbl_B VALUES (2);
使用不存在
:
select distinct item_number
from tbl_A
where not exists (select 1 from tbl_A a
where a.item_number = tbl_A.item_number
and value is not null)
使用不在
中的:
select distinct item_number
from tbl_A
where item_number not in (select distinct item_Number
from tbl_A where value is not null)
使用不存在
:
select distinct item_number
from tbl_A
where not exists (select 1 from tbl_A a
where a.item_number = tbl_A.item_number
and value is not null)
使用不在
中的:
select distinct item_number
from tbl_A
where item_number not in (select distinct item_Number
from tbl_A where value is not null)
这就是你要找的吗
SELECT item_number
FROM tbl_A
GROUP BY item_number
HAVING COUNT(value) = 0
这就是你要找的吗
SELECT item_number
FROM tbl_A
GROUP BY item_number
HAVING COUNT(value) = 0
这不需要一个轴或一个取消轴,所以我不知道为什么它们会被标记。只有一个select distinct,带有not exists或left self join或count(大小写…)@ZLK我已删除了这些标记。这不需要枢轴或unpivot,所以我不确定为什么要标记它们。只有一个select distinct和一个not exists或left self join或count(大小写…)@ZLK我已经删除了这些标记。假设我们有空字符串而不是NULL
?i、 e.”
。我的想法是:拥有COUNT(NULLIF(value),)=0
您可以这样做,但在DDL中,该列被定义为INT。假设不是NULL
,而是空字符串?i、 e.”
。我的想法是:拥有COUNT(NULLIF(value),)=0
您可以这样做,但在DDL中,该列被定义为INT。