我必须根据 where 子句对某些列进行求和,以便更好地理解我在这里实现了一个临时表
declare @tbl table(a int ,b int,c int)
insert into @tbl values(1,2,3)
insert into @tbl values(2,2,3)
insert into @tbl values(1,3,1)
insert into @tbl values(1,2,3)
insert into @tbl values(1,2,3)
并用于查找 a,b,c ob 的值的总和 a,b,c 的基础;我正在使用以下查询
SELECT (
SELECT SUM(a) from @tbl where a=1
)AS a ,
(SELECT SUM(b) from @tbl where b=2
)AS b ,
(SELECT SUM(c) from @tbl where c=3
)AS c
我请我的一位朋友对这项工作进行单行查询,他建议我遵循以下几行
select sum((case when a=1 then a else null end)),
sum((case when b=2 then b else null end)),
sum((case when c=3 then c else null end))
from @tbl
现在我正在考虑如果我有 27 列和数百万条记录,性能会更快吗?
或任何其他方法来实现这一点,这将比这两个更好地提高性能