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
我需要一个 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