SQL 服务器:select 有一个额外的条件

SQL Server : select with an extra condition

我需要一个 SELECT 语句,其作用如下:

Select 
    ...
    a = sum(column1.value)
    b = sum(column1.value) if (column2 = x)
    ....
from
   {TABLE with WHERE, GROUP etc}

为了更清楚:

columnA columnB
    3      2
    4      7
    8      1
    2      2
a=sum(columnA)
b=sum(columnA) if columnB=2
result: a=17, b=5

尝试使用 CASE 但它不起作用。与 FROM 部分 join TABLE AS alt ON(...) where column=x 中的定义有什么不同吗?

DECLARE @temp TABLE
(
    columnA INT,
    columnB INT
)

INSERT INTO @temp (columnA, columnB)
VALUES (3, 2),(4, 7),(8, 1),(2, 2)

SELECT
      SUM(columnA)
    , SUM(CASE WHEN columnB = 2 THEN columnA END)
FROM @temp