0
其中,前一部分是算所有正数和,比CASE WHEN 巧妙。
后一部分是算负数和的绝对值。
巧妙+巧妙却不一定等于巧妙!
此外,还有求绝对值的和
Posted on
Monday, February 27, 2017
by
醉·醉·鱼
and labeled under
sql
计算某列的和,可以直接用SUM。但如果和SIGN结合起来,事情就有可能复杂了。比如,SUM可以替换成下面一行
SUM((1 - SIGN(Amount)) * Amount / 2) + SUM((1 + SIGN(Amount)) * Amount / 2)
其中,前一部分是算所有正数和,比CASE WHEN 巧妙。
SELECT SUM((1 + SIGN(Amount)) * Amount / 2)
后一部分是算负数和的绝对值。
SELECT SUM((1 - SIGN(Amount)) * Amount / 2)
巧妙+巧妙却不一定等于巧妙!
此外,还有求绝对值的和
SUM((1 + SIGN(Amount)) * Amount / 2) - SUM((1 - SIGN(Amount)) * Amount / 2)
Post a Comment