SQL列Sum - 在对列进行求和之前使用if语句将行值加倍

cod*_*ats 2 sql t-sql sql-server

四列表 - id(int),double1(bit),double2(bit),score(int)

想要编写查询,返回得分列的SUM(),按ID分组,其中每行得分可以根据两个双列进行更改.因此,如果得分为10且double1和/或double2列为真,则行分数加倍一次或两次.

Mar*_*ith 6

SELECT id, SUM(score * (double1 + 1) * (double2 + 1))
FROM tbl
GROUP BY id
Run Code Online (Sandbox Code Playgroud)

(编辑为不需要显式强制转换.int 优先级更高)