SQL 服务器 select 条件

SQL Server select condition

我想 select count (*) 从一个 table 条件基于一个字段的类型,考虑下面的代码我在一个查询中想要这样的东西:

select 
    count (*) 
from 
    moniotr as m 
case 
   when m.type = 1 
   begin 
       join paramter as p on p.id = m.paramId 
       where .....
   end
   when m.type = 2 
   begin
       join aggTable as ag on ag.id = m.addId
       where ....

你能告诉我如何在一个查询中处理这个问题吗?

为了获得更多许可,我想要监视器上具有条件 1 的类型 1 和具有条件 2 的类型 2 的监视器计数,两种类型的计数之和! 谢谢

执行 2 个单独的查询,然后合并结果

select  cnt = sum(cnt)
from
(
select  cnt = count(*)
from    monitor m
        inner join paramter as p on p.id = m.paramId 
where   m.type = 1
union all
select  cnt = count(*)
from    monitor m
        inner join aggTable as ag on ag.id = m.addId
where   m.type = 2
) as d