1

我的表中有两列colum#1 isvarchar(MAX)和 column#2 is int

第 2 列中,我有负数和正数条目我希望在我的选择查询中一列中的正数项总和以及另一列中的负数总和

为了实现这一点,我做到了

SELECT SUM(atbl.M),SUM(atbl.p)    
from (select M=case when column#2<0 
                    then column#2 else 0 end,
             P=case when column#2 > 0 
                    then column#2 else 0 end 
        from testTable) atbl

或者

select SUM(case when column#2<0 then column#2 else 0 end) as M
      ,SUM(case when column#2 > 0 then column#2 else 0 end) as P 
 from testTable

有没有更好的方法来实现这一点。

4

1 回答 1

1

如果您经常在该列上执行此操作,请使用视图:

create view testView as
select
    sum(case when column#2 < 0 then column#2 else 0 end) as M,
    sum(case when column#2 > 0 then column#2 else 0 end) as P
from testTable
于 2012-09-20T12:24:15.327 回答