如何使用SQL Server 2005中的Select语句计算两个字段?

Jan*_*ngo 0 sql t-sql select stored-procedures sql-server-2005

表中的总记录是10.

Select count(ID) from table1 where col1 = 1 (Result is 8)
Select count(ID) from table1 where col1 = 0 (Result is 2)
Run Code Online (Sandbox Code Playgroud)

所以它是一个相同的表,但计数是基于不同的条件.如何使用一个select语句获得两个结果(计数)?

此外,性能是一个大问题.

PS:我正在使用存储过程...

编辑:我想清除上面的查询只是一个大SP逻辑的一部分(至少对我来说).由于我得到了以下答案,它给出了另一种想法,以不同的方式实现它.我上面的问题现在有点改变了......请帮忙吗?它是一个具有真或假状态的col(bool类型).

Dan*_*haw 5

使用案例:

SELECT
    SUM(CASE col1 WHEN 1 THEN 1 ELSE 0 END) AS Count1,
    SUM(CASE col1 WHEN 0 THEN 1 ELSE 0 END) AS Count0
FROM table1
Run Code Online (Sandbox Code Playgroud)