Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 仅选择每个行号的所有值均为空的项目_Sql_Sql Server_Tsql - Fatal编程技术网

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。