Tsql 使用大小写计数不同的id

Tsql 使用大小写计数不同的id,tsql,Tsql,假设我有一个带有值的列表ID,如下所示: ID VALUE 1 A 1 NULL 1 B 2 NULL 3 A 我想为等于A或B(至少一个)的值计算不同的ID 答案应该是2,因为有2个ID具有A或B值 如果我进行计数(不同的情况下…我无法获得唯一的ID) 是否有其他解决方案?您应该能够筛选值A或B,然后计算列出的不同ID,如下所示: select count(distinct Id) from tbl where value in ('A','B') declare @

假设我有一个带有值的列表ID,如下所示:

ID  VALUE
1   A
1   NULL
1   B
2   NULL
3   A
我想为等于A或B(至少一个)的值计算不同的ID

答案应该是2,因为有2个ID具有A或B值

如果我进行
计数(不同的情况下…
我无法获得唯一的ID)


是否有其他解决方案?

您应该能够筛选值A或B,然后计算列出的不同ID,如下所示:

select count(distinct Id)
from tbl
where value in ('A','B')
declare @t table (id int not null, 
                  value char(1) null);

insert into @t 
values 
(1,'A'),
(1,NULL),
(1,'B'),
(2,NULL),
(3,'A');

select 
   count(distinct id) 
from @t 
where value in ('A','B');

您应该能够筛选值A或B,然后计算列出的不同ID,如下所示:

declare @t table (id int not null, 
                  value char(1) null);

insert into @t 
values 
(1,'A'),
(1,NULL),
(1,'B'),
(2,NULL),
(3,'A');

select 
   count(distinct id) 
from @t 
where value in ('A','B');