SQL Server:选择具有额外条件

时间:2015-11-25 14:01:51

标签: sql sql-server select conditional-statements where

我需要一个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中的定义?

1 个答案:

答案 0 :(得分:0)

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